| // (C) Copyright Andrew Sutton 2007 |
| // |
| // Use, modification and distribution are subject to the |
| // Boost Software License, Version 1.0 (See accompanying file |
| // LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt) |
| |
| #ifndef BOOST_GRAPH_NULL_PROPERTY_HPP |
| #define BOOST_GRAPH_NULL_PROPERTY_HPP |
| |
| #include <boost/property_map/property_map.hpp> |
| |
| // TODO: This should really be part of the property maps library rather than |
| // the Boost.Graph library. |
| |
| namespace boost |
| { |
| // A null property is somewhat like the inverse of the constant |
| // property map except that instead of returning a single value, |
| // this eats any writes and cannot be read from. |
| |
| template <typename Key, typename Value> |
| struct null_property_map |
| { |
| typedef Key key_type; |
| typedef Value value_type; |
| typedef void reference; |
| typedef boost::writable_property_map_tag category; |
| }; |
| |
| // The null_property_map<K,V> only has a put() function. |
| template <typename K, typename V> |
| void put(null_property_map<K,V>& pm, const K& key, const V& value) |
| { } |
| |
| // A helper function for intantiating null property maps. |
| template <typename Key, typename Value> |
| inline null_property_map<Key, Value> make_null_property() |
| { return null_property_map<Key, Value>(); } |
| } |
| |
| #endif |