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