+enum RouteValidityMask
+{
+ ROUTE_INVALID = 0,
+ ROUTE_LINKED = 1,
+ ROUTE_LINEAR = 2,
+ ROUTE_SMOOTH = 4,
+ ROUTE_VALID = 7
+};
+
+class bad_route: public std::logic_error
+{
+public:
+ bad_route(RouteValidityMask m): std::logic_error(get_message(m)) { }
+ virtual ~bad_route() throw() { }
+
+private:
+ static std::string get_message(RouteValidityMask);
+};
+
+