williamr@4: //======================================================================= williamr@4: // Copyright 2002 Indiana University. williamr@4: // Authors: Andrew Lumsdaine, Lie-Quan Lee, Jeremy G. Siek williamr@2: // williamr@4: // Distributed under the Boost Software License, Version 1.0. (See williamr@4: // accompanying file LICENSE_1_0.txt or copy at williamr@4: // http://www.boost.org/LICENSE_1_0.txt) williamr@4: //======================================================================= williamr@2: williamr@4: #ifndef BOOST_GRAPH_EXCEPTION_HPP williamr@4: #define BOOST_GRAPH_EXCEPTION_HPP williamr@2: williamr@4: #include williamr@4: #include williamr@2: williamr@4: namespace boost { williamr@2: williamr@4: struct bad_graph : public std::invalid_argument { williamr@4: bad_graph(const std::string& what_arg) williamr@4: : std::invalid_argument(what_arg) { } williamr@4: }; williamr@2: williamr@4: struct not_a_dag : public bad_graph { williamr@4: not_a_dag() williamr@4: : bad_graph("The graph must be a DAG.") { } williamr@4: }; williamr@2: williamr@4: struct negative_edge : public bad_graph { williamr@4: negative_edge() williamr@4: : bad_graph("The graph may not contain an edge with negative weight."){ } williamr@4: }; williamr@2: williamr@4: struct negative_cycle : public bad_graph { williamr@4: negative_cycle() williamr@4: : bad_graph("The graph may not contain negative cycles.") { } williamr@4: }; williamr@4: struct not_connected : public bad_graph { williamr@4: not_connected() williamr@4: : bad_graph("The graph must be connected.") { } williamr@4: }; williamr@2: williamr@4: } // namespace boost williamr@2: williamr@4: #endif // BOOST_GRAPH_EXCEPTION_HPP