You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and dots ('.'), can be up to 35 characters long. Letters must be lowercase.
41 lines
1.3 KiB
41 lines
1.3 KiB
// (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
|
|
|