// Copyright (C) 2009 Andrew Sutton // Use, modification and distribution is subject to the Boost Software // License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at // http://www.boost.org/LICENSE_1_0.txt) #ifndef BOOST_GRAPH_LABELED_GRAPH_HPP #define BOOST_GRAPH_LABELED_GRAPH_HPP #include #include #include #include #include #include #include #include #include #include #include // This file implements a utility for creating mappings from arbitrary // identifers to the vertices of a graph. namespace boost { // A type selector that denotes the use of some default value. struct defaultS { }; /** @internal */ namespace graph_detail { /** Returns true if the selector is the default selector. */ template struct is_default : mpl::bool_::value> { }; /** * Choose the default map instance. If Label is an unsigned integral type * the we can use a vector to store the information. */ template struct choose_default_map { typedef typename mpl::if_< is_unsigned