1 //=======================================================================
2 // Copyright 2002 Indiana University.
3 // Authors: Andrew Lumsdaine, Lie-Quan Lee, Jeremy G. Siek
4 //
5 // Distributed under the Boost Software License, Version 1.0. (See
6 // accompanying file LICENSE_1_0.txt or copy at
7 // http://www.boost.org/LICENSE_1_0.txt)
8 //=======================================================================
9 
10 #ifndef BOOST_GRAPH_EXCEPTION_HPP
11 #define BOOST_GRAPH_EXCEPTION_HPP
12 
13 #include <stdexcept>
14 #include <string>
15 
16 namespace boost {
17 
18     struct BOOST_SYMBOL_VISIBLE bad_graph : public std::invalid_argument {
bad_graphboost::bad_graph19         bad_graph(const std::string& what_arg)
20             : std::invalid_argument(what_arg) { }
21     };
22 
23     struct BOOST_SYMBOL_VISIBLE not_a_dag : public bad_graph {
not_a_dagboost::not_a_dag24         not_a_dag()
25             : bad_graph("The graph must be a DAG.")
26         { }
27     };
28 
29     struct BOOST_SYMBOL_VISIBLE negative_edge : public bad_graph {
negative_edgeboost::negative_edge30         negative_edge()
31             : bad_graph("The graph may not contain an edge with negative weight.")
32         { }
33     };
34 
35     struct BOOST_SYMBOL_VISIBLE negative_cycle : public bad_graph {
negative_cycleboost::negative_cycle36         negative_cycle()
37             : bad_graph("The graph may not contain negative cycles.")
38         { }
39     };
40 
41     struct BOOST_SYMBOL_VISIBLE not_connected : public bad_graph {
not_connectedboost::not_connected42         not_connected()
43             : bad_graph("The graph must be connected.")
44         { }
45     };
46 
47    struct BOOST_SYMBOL_VISIBLE not_complete : public bad_graph {
not_completeboost::not_complete48        not_complete()
49            : bad_graph("The graph must be complete.")
50        { }
51    };
52 
53 } // namespace boost
54 
55 #endif // BOOST_GRAPH_EXCEPTION_HPP
56