Line data Source code
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 0 : struct BOOST_SYMBOL_VISIBLE bad_graph : public std::invalid_argument { 19 0 : bad_graph(const std::string& what_arg) 20 0 : : std::invalid_argument(what_arg) { } 21 : }; 22 : 23 0 : struct BOOST_SYMBOL_VISIBLE not_a_dag : public bad_graph { 24 0 : not_a_dag() 25 0 : : bad_graph("The graph must be a DAG.") 26 0 : { } 27 : }; 28 : 29 0 : struct BOOST_SYMBOL_VISIBLE negative_edge : public bad_graph { 30 0 : negative_edge() 31 0 : : bad_graph("The graph may not contain an edge with negative weight.") 32 0 : { } 33 : }; 34 : 35 : struct BOOST_SYMBOL_VISIBLE negative_cycle : public bad_graph { 36 : 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 { 42 : not_connected() 43 : : bad_graph("The graph must be connected.") 44 : { } 45 : }; 46 : 47 : struct BOOST_SYMBOL_VISIBLE not_complete : public bad_graph { 48 : not_complete() 49 : : bad_graph("The graph must be complete.") 50 : { } 51 : }; 52 : 53 : } // namespace boost 54 : 55 : #endif // BOOST_GRAPH_EXCEPTION_HPP