$include_dir="/home/hyper-archives/boost-commit/include"; include("$include_dir/msg-header.inc") ?>
Subject: [Boost-commit] svn:boost r86603 - in trunk: boost/property_map libs/property_map/doc
From: jewillco_at_[hidden]
Date: 2013-11-09 14:04:41
Author: jewillco
Date: 2013-11-09 14:04:41 EST (Sat, 09 Nov 2013)
New Revision: 86603
URL: http://svn.boost.org/trac/boost/changeset/86603
Log:
Added optional key type for static_property_map; added make_static_property_map; documented static_property_map and the new stuff
Added:
   trunk/libs/property_map/doc/static_property_map.html
      - copied, changed from r86589, trunk/libs/property_map/doc/ref_property_map.html
Text files modified: 
   trunk/boost/property_map/property_map.hpp            |    10 +++++-                                  
   trunk/libs/property_map/doc/property_map.html        |     1                                         
   trunk/libs/property_map/doc/ref_property_map.html    |     4 +-                                      
   trunk/libs/property_map/doc/static_property_map.html |    55 ++++++++++++++++++++++++--------------- 
   4 files changed, 45 insertions(+), 25 deletions(-)
Modified: trunk/boost/property_map/property_map.hpp
==============================================================================
--- trunk/boost/property_map/property_map.hpp	Sat Nov  9 13:53:07 2013	(r86602)
+++ trunk/boost/property_map/property_map.hpp	2013-11-09 14:04:41 EST (Sat, 09 Nov 2013)	(r86603)
@@ -486,14 +486,14 @@
   //=========================================================================
   // A property map that always returns the same object by value.
   //
-  template <typename ValueType>
+  template <typename ValueType, typename KeyType = void>
   class static_property_map :
       public
   boost::put_get_helper<ValueType,static_property_map<ValueType> >
   { 
     ValueType value;
   public:
-    typedef void key_type;
+    typedef KeyType key_type;
     typedef ValueType value_type;
     typedef ValueType reference;
     typedef readable_property_map_tag category;
@@ -503,6 +503,12 @@
     inline reference operator[](T) const { return value; }
   };
 
+  template <typename KeyType, typename ValueType>
+  static_property_map<ValueType, KeyType>
+  make_static_property_map(const ValueType& v) {
+    return static_property_map<ValueType, KeyType>(v);
+  }
+
   //=========================================================================
   // A property map that always returns a reference to the same object.
   //
Modified: trunk/libs/property_map/doc/property_map.html
==============================================================================
--- trunk/libs/property_map/doc/property_map.html	Sat Nov  9 13:53:07 2013	(r86602)
+++ trunk/libs/property_map/doc/property_map.html	2013-11-09 14:04:41 EST (Sat, 09 Nov 2013)	(r86603)
@@ -291,6 +291,7 @@
   <li>const_associative_property_map</li>
   <li>vector_property_map</li>
   <li>ref_property_map </li>
+  <li>static_property_map </li>
   <li>transform_value_property_map </li>
   <li>compose_property_map </li>
 </ul>
Modified: trunk/libs/property_map/doc/ref_property_map.html
==============================================================================
--- trunk/libs/property_map/doc/ref_property_map.html	Sat Nov  9 13:53:07 2013	(r86602)
+++ trunk/libs/property_map/doc/ref_property_map.html	2013-11-09 14:04:41 EST (Sat, 09 Nov 2013)	(r86603)
@@ -47,7 +47,7 @@
 boost::property_traits<ref_property_map>::value_type
 </tt></td>
 <td>
-This type is the <tt>ValueType</tt> with which the template instantiated.
+This type is the <tt>ValueType</tt> with which the template was instantiated.
 </td>
 </tr>
 
@@ -56,7 +56,7 @@
 boost::property_traits<ref_property_map>::key_type
 </tt></td>
 <td>
-This type is the <tt>KeyType</tt> with which the template instantiated.
+This type is the <tt>KeyType</tt> with which the template was instantiated.
 </td>
 </tr>
 
Copied and modified: trunk/libs/property_map/doc/static_property_map.html (from r86589, trunk/libs/property_map/doc/ref_property_map.html)
==============================================================================
--- trunk/libs/property_map/doc/ref_property_map.html	Fri Nov  8 16:23:37 2013	(r86589, copy source)
+++ trunk/libs/property_map/doc/static_property_map.html	2013-11-09 14:04:41 EST (Sat, 09 Nov 2013)	(r86603)
@@ -1,6 +1,6 @@
 <HTML>
 <!--
-     Copyright 2006 The Trustees of Indiana University
+     Copyright 2006, 2013 The Trustees of Indiana University
     
      Use, modification and distribution is subject to the Boost Software
      License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
@@ -8,7 +8,7 @@
     
   -->
 <Head>
-<Title>Reference Property Map</Title>
+<Title>Static Property Map</Title>
 <BODY BGCOLOR="#ffffff" LINK="#0000ee" TEXT="#000000" VLINK="#551a8b" 
         ALINK="#ff0000"> 
 <IMG SRC="../../../boost.png" 
@@ -16,15 +16,15 @@
 
 <BR Clear>
 
-<H2><A NAME="sec:identity-property-map"></A>
+<H2><A NAME="sec:static-property-map"></A>
 </h2>
 <PRE>
-template <typename KeyType, typename ValueType>
-class ref_property_map
+template <typename ValueType, typename KeyType = void>
+class static_property_map
 </PRE>
 
-This property map wraps a reference to some particular object, and
-returns that reference whenever a key object is input.
+This property map wraps a copy of some particular object, and
+returns a copy of that object whenever a key object is input.
 
 <H3>Where Defined</H3>
 
@@ -33,7 +33,7 @@
 
 <h3>Model of</h3>
 
-Lvalue Property Map
+Readable Property Map
 
 <h3>Associated Types</h3>
 
@@ -44,28 +44,28 @@
 
 <tr>
 <td><tt>
-boost::property_traits<ref_property_map>::value_type
+boost::property_traits<static_property_map>::value_type
 </tt></td>
 <td>
-This type is the <tt>ValueType</tt> with which the template instantiated.
+This type is the <tt>ValueType</tt> with which the template was instantiated.
 </td>
 </tr>
 
 <tr>
 <td><tt>
-boost::property_traits<ref_property_map>::key_type
+boost::property_traits<static_property_map>::key_type
 </tt></td>
 <td>
-This type is the <tt>KeyType</tt> with which the template instantiated.
+This type is the <tt>KeyType</tt> with which the template was instantiated.
 </td>
 </tr>
 
 <tr>
 <td><tt>
-boost::property_traits<ref_property_map>::category
+boost::property_traits<static_property_map>::category
 </tt></td>
 <td>
-This type is <tt>boost::lvalue_property_map_tag</tt>.
+This type is <tt>boost::readable_property_map_tag</tt>.
 </td>
 </tr>
 
@@ -81,17 +81,17 @@
 
 <tr>
 <td><tt>
-ref_property_map(ValueType& v)
+static_property_map(ValueType v)
 </tt></td>
 <td>
-The constructor for ref_property_map is provided the reference that
+The constructor for static_property_map is provided the value that
 the property map will return when queried.
 </td>
 </tr>
 
 <tr>
 <td><tt>
-ref_property_map(const ref_property_map& x)
+static_property_map(const static_property_map& x)
 </tt></td>
 <td>
 Copy constructor.
@@ -99,16 +99,29 @@
 </tr>
 
 <tr>
-<td><tt>
-ValueType& operator[](KeyType const&) const
-</tt></td>
+<td><pre>
+template <typename T>
+ValueType& operator[](T) const
+</pre></td>
 <td>
-Returns the contained reference.
+Returns the contained value by copy.
 </td>
 </tr>
 
 </table>
 
+<h3>Non-Member Functions</h3>
+
+<table border>
+<tr><td><pre>
+template <typename KeyType, typename ValueType>
+static_property_map<KeyType, ValueType>
+make_static_property_map(const ValueType& value);
+</pre></td>
+<td>Returns a <tt>static_property_map</tt> with the given key type initialized to the given value.</td>
+</tr>
+</table>
+
 
 </BODY>
 </HTML>