$include_dir="/home/hyper-archives/boost-commit/include"; include("$include_dir/msg-header.inc") ?>
Subject: [Boost-commit] svn:boost r74533 - in sandbox/utility-container_gen/libs/utility/container_gen: doc doc/html/container_gen/reference example
From: sponage_at_[hidden]
Date: 2011-09-23 03:42:25
Author: expaler
Date: 2011-09-23 03:42:23 EDT (Fri, 23 Sep 2011)
New Revision: 74533
URL: http://svn.boost.org/trac/boost/changeset/74533
Log:
Added output_char_tallies example to Boost.Utility.ContainerGen
Added:
   sandbox/utility-container_gen/libs/utility/container_gen/doc/container_gen.qbk   (contents, props changed)
   sandbox/utility-container_gen/libs/utility/container_gen/doc/html/container_gen/reference/associative_container_gen.html   (contents, props changed)
   sandbox/utility-container_gen/libs/utility/container_gen/doc/html/container_gen/reference/container_gen.html   (contents, props changed)
   sandbox/utility-container_gen/libs/utility/container_gen/doc/html/container_gen/reference/is_random_access_selector.html   (contents, props changed)
   sandbox/utility-container_gen/libs/utility/container_gen/doc/html/container_gen/reference/is_unique_associative_selector.html   (contents, props changed)
   sandbox/utility-container_gen/libs/utility/container_gen/doc/ref_assoc_container_gen.qbk   (contents, props changed)
   sandbox/utility-container_gen/libs/utility/container_gen/doc/ref_container_gen.qbk   (contents, props changed)
   sandbox/utility-container_gen/libs/utility/container_gen/doc/ref_is_rand_access_selector.qbk   (contents, props changed)
   sandbox/utility-container_gen/libs/utility/container_gen/doc/ref_is_unique_assoc_sel.qbk   (contents, props changed)
   sandbox/utility-container_gen/libs/utility/container_gen/doc/reference.qbk   (contents, props changed)
   sandbox/utility-container_gen/libs/utility/container_gen/example/
   sandbox/utility-container_gen/libs/utility/container_gen/example/output_char_tallies.cpp   (contents, props changed)
Added: sandbox/utility-container_gen/libs/utility/container_gen/doc/container_gen.qbk
==============================================================================
--- (empty file)
+++ sandbox/utility-container_gen/libs/utility/container_gen/doc/container_gen.qbk	2011-09-23 03:42:23 EDT (Fri, 23 Sep 2011)
@@ -0,0 +1,75 @@
+[library container_gen
+    [quickbook 1.5]
+    [version 0.1]
+    [authors [Lumsdaine, Andrew][Lee, Lie-Quan][Claveirole, Thomas][Siek, Jeremy G.][Enage, Cromwell D.]]
+    [copyright 1997-2011 Andrew Lumsdaine, Lie-Quan Lee, Thomas Claveirole, Jeremy G. Siek, Cromwell D. Enage]
+    [purpose Collection of container-generating metafunctions]
+    [license
+        Distributed under 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])
+    ]
+]
+
+[/ General concept links.]
+[def __Random_Access_Container__ [@http://www.sgi.com/tech/stl/RandomAccessContainer.html [*Random Access Container]]]
+[def __Associative_Container__ [@http://www.sgi.com/tech/stl/AssociativeContainer.html [*Associative Container]]]
+[def __Unique_Associative_Container__ [@http://www.sgi.com/tech/stl/UniqueAssociativeContainer.html [*Unique Associative Container]]]
+
+[/ STL reference links.]
+[def __std_list__ [@http://www.sgi.com/tech/stl/List.html `std::list`]]
+[def _std_string_ [@http://www.sgi.com/tech/stl/basic_string.html std::string]]
+
+[/ Boost library links.]
+[def __Boost_Utility__ [@boost:libs/utility/index.html [*Boost.Utility]]]
+[def __BGL__ [@boost:libs/graph/doc/index.html BGL]]
+[def __SVN_Trac__ [@http://svn.boost.org/ SVN Trac]]
+[def __Boost_Type_Traits_Operators__ [@http://svn.boost.org/svn/boost/sandbox/type_traits/libs/type_traits/doc/html/index.html [*Boost.TypeTraitsOperators]]]
+
+[/ Boost reference links.]
+[def _mpl_apply_wrap1_ [@boost:libs/mpl/doc/refmanual/apply-wrap.html boost::mpl::apply_wrap1]]
+[def _mpl_apply_wrap2_ [@boost:libs/mpl/doc/refmanual/apply-wrap.html boost::mpl::apply_wrap2]]
+[def __mpl_true__ [@boost:libs/mpl/doc/refmanual/bool.html `boost::mpl::true_`]]
+[def __mpl_false__ [@boost:libs/mpl/doc/refmanual/bool.html `boost::mpl::false_`]]
+[def __graph_adjacency_list__ [@boost:libs/graph/doc/adjacency_list.html `boost::adjacency_list`]]
+[def __graph_parallel_edge_traits__ [@boost:libs/graph/doc/using_adjacency_list.html#SECTION00834200000000000000 `boost::parallel_edge_traits`]]
+
+[/ Boost.Utility.ContainerGen reference header file links.]
+[def __boost_utility_container_selector_hpp__ [@../../../../../boost/utility/container_selector.hpp boost/utility/container_selector.hpp]]
+[def __boost_utility_is_random_access_selector_hpp__ [@../../../../../boost/utility/is_random_access_selector.hpp boost/utility/is_random_access_selector.hpp]]
+[def __boost_utility_is_unique_assoc_selector_hpp__ [@../../../../../boost/utility/is_unique_assoc_selector.hpp boost/utility/is_unique_assoc_selector.hpp]]
+[def __boost_utility_container_gen_hpp__ [@../../../../../boost/utility/container_gen.hpp boost/utility/container_gen.hpp]]
+[def __boost_utility_associative_container_gen_hpp__ [@../../../../../boost/utility/associative_container_gen.hpp boost/utility/associative_container_gen.hpp]]
+
+[/ Boost.Utility.ContainerGen reference links.]
+[def __container_gen__ [link container_gen.reference.container_gen `container_gen`]]
+[def _container_gen_ [link container_gen.reference.container_gen container_gen]]
+[def __associative_container_gen__ [link container_gen.reference.associative_container_gen `associative_container_gen`]]
+[def _associative_container_gen_ [link container_gen.reference.associative_container_gen associative_container_gen]]
+[def __is_random_access_selector__ [link container_gen.reference.is_random_access_selector `is_random_access_selector`]]
+[def _is_random_access_selector_ [link container_gen.reference.is_random_access_selector is_random_access_selector]]
+[def __is_unique_associative_selector__ [link container_gen.reference.is_unique_associative_selector `is_unique_associative_selector`]]
+[def _is_unique_associative_selector_ [link container_gen.reference.is_unique_associative_selector is_unique_associative_selector]]
+
+[/ Autogenerate reference documentation directly from code.]
+[/ Bypass Doxygen.]
+[import ../../../../boost/utility/container_selector.hpp]
+[import ../../../../boost/utility/is_random_access_selector.hpp]
+[import ../../../../boost/utility/is_unique_assoc_selector.hpp]
+[import ../../../../boost/utility/container_gen.hpp]
+[import ../../../../boost/utility/associative_container_gen.hpp]
+[import ../../../../libs/graph/example/container_gen.cpp]
+[import ../../../../libs/utility/container_gen/example/output_char_tallies.cpp]
+
+[/ index.html Start]
+
+[heading Rationale]
+Significant interest was expressed in moving the `container_gen` metafunction
+from its current place in the __BGL__ to a more general residence such as
+__Boost_Utility__.  The relevant discussion is archived here:
+[@http://listarchives.boost.org/Archives/boost/2011/05/181573.php].
+
+[/ index.html End]
+
+[include reference.qbk]
+
Added: sandbox/utility-container_gen/libs/utility/container_gen/doc/html/container_gen/reference/associative_container_gen.html
==============================================================================
--- (empty file)
+++ sandbox/utility-container_gen/libs/utility/container_gen/doc/html/container_gen/reference/associative_container_gen.html	2011-09-23 03:42:23 EDT (Fri, 23 Sep 2011)
@@ -0,0 +1,178 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>associative_container_gen</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="../../index.html" title="Chapter 1. container_gen 0.1">
+<link rel="up" href="../reference.html" title="Reference">
+<link rel="prev" href="container_gen.html" title="container_gen">
+<link rel="next" href="is_random_access_selector.html" title="is_random_access_selector">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr><td valign="top"><img alt="C++ Boost" width="277" height="86" src="../../../../../../../boost.png"></td></tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="container_gen.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="is_random_access_selector.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="container_gen.reference.associative_container_gen"></a><a class="link" href="associative_container_gen.html" title="associative_container_gen"><code class="computeroutput"><span class="identifier">associative_container_gen</span></code></a>
+</h3></div></div></div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="container_gen.reference.associative_container_gen.synopsis"></a><a class="link" href="associative_container_gen.html#container_gen.reference.associative_container_gen.synopsis" title="Synopsis">Synopsis</a>
+</h4></div></div></div>
+<p>
+          
+</p>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">Selector</span><span class="special">></span>
+<span class="keyword">struct</span> <span class="identifier">associative_container_gen</span>
+<span class="special">{</span>
+    <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">Key</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Mapped</span> <span class="special">=</span> <span class="keyword">void</span><span class="special">></span>
+    <span class="keyword">struct</span> <span class="identifier">apply</span>
+    <span class="special">{</span>
+        <span class="comment">// typedef ... type;
+</span>    <span class="special">};</span>
+<span class="special">};</span>
+</pre>
+<p>
+        </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="container_gen.reference.associative_container_gen.description"></a><a class="link" href="associative_container_gen.html#container_gen.reference.associative_container_gen.description" title="Description">Description</a>
+</h4></div></div></div>
+<p>
+          This metafunction class can be used to determine the appropriate associative
+          container type given the specified selector. The example routine below
+          uses the <code class="computeroutput"><span class="identifier">associative_container_gen</span></code>
+          return type to associate each distinct string character with the number
+          of times it appears in the string.
+        </p>
+<p>
+          
+</p>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">Selector</span><span class="special">></span>
+<span class="keyword">void</span> <span class="identifier">output_char_tallies</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">str</span><span class="special">,</span> <span class="identifier">Selector</span><span class="special">)</span>
+<span class="special">{</span>
+    <span class="keyword">typedef</span> <span class="keyword">typename</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">apply_wrap2</span><span class="special"><</span>
+                <span class="identifier">boost</span><span class="special">::</span><span class="identifier">associative_container_gen</span><span class="special"><</span><span class="identifier">Selector</span><span class="special">></span>
+              <span class="special">,</span> <span class="keyword">char</span>
+              <span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span>
+            <span class="special">>::</span><span class="identifier">type</span>
+            <span class="identifier">FrequencyTable</span><span class="special">;</span>
+
+    <span class="identifier">FrequencyTable</span> <span class="identifier">freq_table</span><span class="special">;</span>
+    <span class="keyword">char</span> <span class="identifier">reverse_counter</span> <span class="special">=</span> <span class="number">0</span><span class="special">;</span>
+
+    <span class="keyword">for</span> <span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="identifier">i</span> <span class="special">=</span> <span class="number">0</span><span class="special">;</span> <span class="identifier">i</span> <span class="special"><</span> <span class="identifier">str</span><span class="special">.</span><span class="identifier">size</span><span class="special">();</span> <span class="special">++</span><span class="identifier">i</span><span class="special">)</span>
+    <span class="special">{</span>
+        <span class="keyword">typename</span> <span class="identifier">FrequencyTable</span><span class="special">::</span><span class="identifier">iterator</span> <span class="identifier">ft_itr</span> <span class="special">=</span> <span class="identifier">freq_table</span><span class="special">.</span><span class="identifier">find</span><span class="special">(</span><span class="identifier">str</span><span class="special">[</span><span class="identifier">i</span><span class="special">]);</span>
+
+        <span class="keyword">if</span> <span class="special">(</span><span class="identifier">ft_itr</span> <span class="special">==</span> <span class="identifier">freq_table</span><span class="special">.</span><span class="identifier">end</span><span class="special">())</span>
+        <span class="special">{</span>
+            <span class="identifier">freq_table</span><span class="special">.</span><span class="identifier">insert</span><span class="special">(</span><span class="keyword">typename</span> <span class="identifier">FrequencyTable</span><span class="special">::</span><span class="identifier">value_type</span><span class="special">(</span><span class="identifier">str</span><span class="special">[</span><span class="identifier">i</span><span class="special">],</span> <span class="number">1</span><span class="special">));</span>
+        <span class="special">}</span>
+        <span class="keyword">else</span>
+        <span class="special">{</span>
+            <span class="special">++</span><span class="identifier">ft_itr</span><span class="special">-></span><span class="identifier">second</span><span class="special">;</span>
+        <span class="special">}</span>
+    <span class="special">}</span>
+
+    <span class="keyword">for</span> <span class="special">(</span>
+        <span class="keyword">typename</span> <span class="identifier">FrequencyTable</span><span class="special">::</span><span class="identifier">const_iterator</span> <span class="identifier">ft_itr</span> <span class="special">=</span> <span class="identifier">freq_table</span><span class="special">.</span><span class="identifier">begin</span><span class="special">();</span>
+        <span class="identifier">ft_itr</span> <span class="special">!=</span> <span class="identifier">freq_table</span><span class="special">.</span><span class="identifier">end</span><span class="special">();</span>
+        <span class="special">++</span><span class="identifier">ft_itr</span>
+    <span class="special">)</span>
+    <span class="special">{</span>
+        <span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special"><<</span> <span class="identifier">ft_itr</span><span class="special">-></span><span class="identifier">first</span> <span class="special"><<</span> <span class="string">": "</span> <span class="special"><<</span> <span class="identifier">ft_itr</span><span class="special">-></span><span class="identifier">second</span> <span class="special"><<</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span>
+    <span class="special">}</span>
+
+    <span class="identifier">std</span><span class="special">::</span><span class="identifier">cout</span> <span class="special"><<</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">endl</span><span class="special">;</span>
+<span class="special">}</span>
+</pre>
+<p>
+        </p>
+<p>
+          This library provides specializations of this metafunction class for each
+          selector it provides whose resulting storage type models the Associative Container concept. Here, two
+          such selectors are passed in calls to the example routine.
+        </p>
+<p>
+          
+</p>
+<pre class="programlisting"><span class="keyword">int</span> <span class="identifier">main</span><span class="special">(</span><span class="keyword">int</span><span class="special">,</span> <span class="keyword">char</span><span class="special">**)</span>
+<span class="special">{</span>
+    <span class="identifier">output_char_tallies</span><span class="special">(</span><span class="string">"abacadabra"</span><span class="special">,</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">hash_mapS</span><span class="special">());</span>
+    <span class="identifier">output_char_tallies</span><span class="special">(</span><span class="string">"loolapalooza"</span><span class="special">,</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">multimapS</span><span class="special">());</span>
+    <span class="keyword">return</span> <span class="number">0</span><span class="special">;</span>
+<span class="special">}</span>
+</pre>
+<p>
+        </p>
+<p>
+          It is possible to nest containers via <code class="computeroutput"><span class="identifier">associative_container_gen</span></code>,
+          e.g.:
+        </p>
+<p>
+          
+</p>
+<pre class="programlisting"><span class="keyword">typedef</span> boost::mpl::apply_wrap2<span class="special"><</span>
+            <span class="identifier">associative_container_gen</span><span class="special"><</span><span class="identifier">mapS</span><span class="special">></span>
+          <span class="special">,</span> boost::mpl::apply_wrap1<span class="special"><</span><span class="identifier">associative_container_gen</span><span class="special"><</span><span class="identifier">setS</span><span class="special">>,</span><span class="keyword">char</span><span class="special">>::</span><span class="identifier">type</span>
+          <span class="special">,</span> std::string
+        <span class="special">>::</span><span class="identifier">type</span>
+        <span class="identifier">MapOfCharSets2Strings</span><span class="special">;</span>
+</pre>
+<p>
+        </p>
+<div class="important"><table border="0" summary="Important">
+<tr>
+<td rowspan="2" align="center" valign="top" width="25"><img alt="[Important]" src="../../images/important.png"></td>
+<th align="left">Important</th>
+</tr>
+<tr><td align="left" valign="top">
+<p>
+            This last capability depends on Boost.TypeTraitsOperators, which has been
+            recently accepted into Boost but is currently not part of an official
+            release. For now, you must perform a Subversion checkout from the SVN Trac, add the <code class="computeroutput"><span class="identifier">type_traits</span></code>
+            module to your list of header directories, and <code class="computeroutput"><span class="preprocessor">#define</span>
+            <span class="identifier">BOOST_CONTAINER_GEN_USES_OP_TYPE_TRAITS</span></code>
+            in order to obtain this capability.
+          </p>
+<p>
+            If you do not need this capability, then you do not need Boost.TypeTraitsOperators.
+          </p>
+</td></tr>
+</table></div>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="container_gen.reference.associative_container_gen.definition"></a><a class="link" href="associative_container_gen.html#container_gen.reference.associative_container_gen.definition" title="Where defined">Where
+        defined</a>
+</h4></div></div></div>
+<p>
+          
+</p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span>boost/utility/associative_container_gen.hpp<span class="special">></span>
+</pre>
+<p>
+        </p>
+</div>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"></td>
+<td align="right"><div class="copyright-footer">Copyright © 1997 -2011 Andrew Lumsdaine, Lie-Quan Lee, Thomas Claveirole,
+      Jeremy G. Siek, Cromwell D. Enage<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="container_gen.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="is_random_access_selector.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/utility-container_gen/libs/utility/container_gen/doc/html/container_gen/reference/container_gen.html
==============================================================================
--- (empty file)
+++ sandbox/utility-container_gen/libs/utility/container_gen/doc/html/container_gen/reference/container_gen.html	2011-09-23 03:42:23 EDT (Fri, 23 Sep 2011)
@@ -0,0 +1,184 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>container_gen</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="../../index.html" title="Chapter 1. container_gen 0.1">
+<link rel="up" href="../reference.html" title="Reference">
+<link rel="prev" href="../reference.html" title="Reference">
+<link rel="next" href="associative_container_gen.html" title="associative_container_gen">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr><td valign="top"><img alt="C++ Boost" width="277" height="86" src="../../../../../../../boost.png"></td></tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../reference.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="associative_container_gen.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="container_gen.reference.container_gen"></a><a class="link" href="container_gen.html" title="container_gen"><code class="computeroutput"><span class="identifier">container_gen</span></code></a>
+</h3></div></div></div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="container_gen.reference.container_gen.synopsis"></a><a class="link" href="container_gen.html#container_gen.reference.container_gen.synopsis" title="Synopsis">Synopsis</a>
+</h4></div></div></div>
+<p>
+          
+</p>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
+
+    <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">Selector</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">ValueType</span><span class="special">></span>
+    <span class="keyword">struct</span> <span class="identifier">container_gen</span>
+    <span class="special">{</span>
+        <span class="comment">// typedef .... type;
+</span>    <span class="special">};</span>
+<span class="special">}</span>  <span class="comment">// namespace boost
+</span></pre>
+<p>
+        </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="container_gen.reference.container_gen.description"></a><a class="link" href="container_gen.html#container_gen.reference.container_gen.description" title="Description">Description</a>
+</h4></div></div></div>
+<p>
+          The boost::adjacency_list class template
+          uses this metafunction to map the <code class="computeroutput"><span class="identifier">OutEdgeList</span></code>
+          and <code class="computeroutput"><span class="identifier">VertexList</span></code> selectors
+          to the actual container types used for the graph storage. This library
+          provides specializations of this metafunction for each selector it defines.
+          Here are the selector definitions:
+        </p>
+<p>
+          
+</p>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
+
+<span class="preprocessor">#if</span> <span class="special">!</span><span class="identifier">defined</span> <span class="identifier">BOOST_NO_SLIST</span>
+    <span class="keyword">struct</span> <span class="identifier">slistS</span> <span class="special">{</span> <span class="special">};</span>
+<span class="preprocessor">#endif</span>
+
+    <span class="keyword">struct</span> <span class="identifier">vecS</span> <span class="special">{</span> <span class="special">};</span>
+    <span class="keyword">struct</span> <span class="identifier">dequeS</span> <span class="special">{</span> <span class="special">};</span>
+    <span class="keyword">struct</span> <span class="identifier">listS</span> <span class="special">{</span> <span class="special">};</span>
+    <span class="keyword">struct</span> <span class="identifier">setS</span> <span class="special">{</span> <span class="special">};</span>
+    <span class="keyword">struct</span> <span class="identifier">mapS</span> <span class="special">{</span> <span class="special">};</span>
+    <span class="keyword">struct</span> <span class="identifier">multisetS</span> <span class="special">{</span> <span class="special">};</span>
+    <span class="keyword">struct</span> <span class="identifier">multimapS</span> <span class="special">{</span> <span class="special">};</span>
+    <span class="keyword">struct</span> <span class="identifier">hash_setS</span> <span class="special">{</span> <span class="special">};</span>
+    <span class="keyword">struct</span> <span class="identifier">hash_mapS</span> <span class="special">{</span> <span class="special">};</span>
+    <span class="keyword">struct</span> <span class="identifier">hash_multisetS</span> <span class="special">{</span> <span class="special">};</span>
+    <span class="keyword">struct</span> <span class="identifier">hash_multimapS</span> <span class="special">{</span> <span class="special">};</span>
+<span class="special">}</span>  <span class="comment">// namespace boost
+</span></pre>
+<p>
+        </p>
+<p>
+          The specialization for the <code class="computeroutput"><span class="identifier">listS</span></code>
+          selector is shown here.
+        </p>
+<p>
+          
+</p>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
+
+
+    <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">ValueType</span><span class="special">></span>
+    <span class="keyword">struct</span> <span class="identifier">container_gen</span><span class="special"><</span><span class="identifier">listS</span><span class="special">,</span><span class="identifier">ValueType</span><span class="special">></span>
+    <span class="special">{</span>
+        <span class="keyword">typedef</span> <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">list</span><span class="special"><</span><span class="identifier">ValueType</span><span class="special">></span> <span class="identifier">type</span><span class="special">;</span>
+    <span class="special">};</span>
+
+<span class="special">}</span>  <span class="comment">// namespace boost
+</span></pre>
+<p>
+        </p>
+<p>
+          To use some other container of your choice, or to supply more template
+          arguments to a standard container than just <code class="computeroutput"><span class="identifier">ValueType</span></code>,
+          define a selector class and then specialize this metafunction for your
+          selector. In the code below we show how to create a selector that lets
+          you specify the allocator to be used with the std::list.
+        </p>
+<p>
+          
+</p>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">class</span> <span class="identifier">Allocator</span><span class="special">></span>
+<span class="keyword">struct</span> <span class="identifier">list_with_allocatorS</span> <span class="special">{</span> <span class="special">};</span>
+
+<span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
+  <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">Alloc</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">ValueType</span><span class="special">></span>
+  <span class="keyword">struct</span> <span class="identifier">container_gen</span><span class="special"><</span><span class="identifier">list_with_allocatorS</span><span class="special"><</span><span class="identifier">Alloc</span><span class="special">>,</span><span class="identifier">ValueType</span><span class="special">></span> <span class="special">{</span>
+    <span class="keyword">typedef</span> <span class="keyword">typename</span> <span class="identifier">Alloc</span><span class="special">::</span><span class="keyword">template</span> <span class="identifier">rebind</span><span class="special"><</span><span class="identifier">ValueType</span><span class="special">>::</span><span class="identifier">other</span> <span class="identifier">Allocator</span><span class="special">;</span>
+    <span class="keyword">typedef</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">list</span><span class="special"><</span><span class="identifier">ValueType</span><span class="special">,</span> <span class="identifier">Allocator</span><span class="special">></span> <span class="identifier">type</span><span class="special">;</span>
+  <span class="special">};</span>
+<span class="special">}</span>
+
+<span class="comment">// now you can define a graph using std::list and a specific allocator  
+</span><span class="keyword">typedef</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">adjacency_list</span><span class="special"><</span> <span class="identifier">list_with_allocatorS</span><span class="special"><</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">allocator</span><span class="special"><</span><span class="keyword">int</span><span class="special">></span> <span class="special">>,</span>
+  <span class="identifier">boost</span><span class="special">::</span><span class="identifier">vecS</span><span class="special">,</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">directedS</span><span class="special">></span> <span class="identifier">MyGraph</span><span class="special">;</span>
+</pre>
+<p>
+        </p>
+<p>
+          It is possible to nest associative containers via <code class="computeroutput"><span class="identifier">container_gen</span></code>,
+          e.g.:
+        </p>
+<p>
+          
+</p>
+<pre class="programlisting"><span class="keyword">typedef</span> <span class="identifier">container_gen</span><span class="special"><</span><span class="identifier">setS</span><span class="special">,</span><span class="identifier">container_gen</span><span class="special"><</span><span class="identifier">setS</span><span class="special">,</span><span class="keyword">int</span><span class="special">>::</span><span class="identifier">type</span><span class="special">>::</span><span class="identifier">type</span>
+        <span class="identifier">SetOfSetsOfIntegers</span><span class="special">;</span>
+</pre>
+<p>
+        </p>
+<div class="important"><table border="0" summary="Important">
+<tr>
+<td rowspan="2" align="center" valign="top" width="25"><img alt="[Important]" src="../../images/important.png"></td>
+<th align="left">Important</th>
+</tr>
+<tr><td align="left" valign="top">
+<p>
+            This last capability depends on Boost.TypeTraitsOperators, which has been
+            recently accepted into Boost but is currently not part of an official
+            release. For now, you must perform a Subversion checkout from the SVN Trac, add the <code class="computeroutput"><span class="identifier">type_traits</span></code>
+            module to your list of header directories, and <code class="computeroutput"><span class="preprocessor">#define</span>
+            <span class="identifier">BOOST_CONTAINER_GEN_USES_OP_TYPE_TRAITS</span></code>
+            in order to obtain this capability.
+          </p>
+<p>
+            If you do not need this capability, then you do not need Boost.TypeTraitsOperators.
+          </p>
+</td></tr>
+</table></div>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="container_gen.reference.container_gen.definition"></a><a class="link" href="container_gen.html#container_gen.reference.container_gen.definition" title="Where defined">Where
+        defined</a>
+</h4></div></div></div>
+<p>
+          
+</p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span>boost/utility/container_gen.hpp<span class="special">></span>
+</pre>
+<p>
+        </p>
+</div>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"></td>
+<td align="right"><div class="copyright-footer">Copyright © 1997 -2011 Andrew Lumsdaine, Lie-Quan Lee, Thomas Claveirole,
+      Jeremy G. Siek, Cromwell D. Enage<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="../reference.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="associative_container_gen.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/utility-container_gen/libs/utility/container_gen/doc/html/container_gen/reference/is_random_access_selector.html
==============================================================================
--- (empty file)
+++ sandbox/utility-container_gen/libs/utility/container_gen/doc/html/container_gen/reference/is_random_access_selector.html	2011-09-23 03:42:23 EDT (Fri, 23 Sep 2011)
@@ -0,0 +1,86 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>is_random_access_selector</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="../../index.html" title="Chapter 1. container_gen 0.1">
+<link rel="up" href="../reference.html" title="Reference">
+<link rel="prev" href="associative_container_gen.html" title="associative_container_gen">
+<link rel="next" href="is_unique_associative_selector.html" title="is_unique_associative_selector">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr><td valign="top"><img alt="C++ Boost" width="277" height="86" src="../../../../../../../boost.png"></td></tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="associative_container_gen.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="is_unique_associative_selector.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="container_gen.reference.is_random_access_selector"></a><a class="link" href="is_random_access_selector.html" title="is_random_access_selector"><code class="computeroutput"><span class="identifier">is_random_access_selector</span></code></a>
+</h3></div></div></div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="container_gen.reference.is_random_access_selector.synopsis"></a><a class="link" href="is_random_access_selector.html#container_gen.reference.is_random_access_selector.synopsis" title="Synopsis">Synopsis</a>
+</h4></div></div></div>
+<p>
+          
+</p>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
+
+    <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">Selector</span><span class="special">></span>
+    <span class="keyword">struct</span> <span class="identifier">is_random_access_selector</span> <span class="special">:</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">false_</span>
+    <span class="special">{</span>
+    <span class="special">};</span>
+
+<span class="special">}</span>  <span class="comment">// namespace boost
+</span></pre>
+<p>
+        </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="container_gen.reference.is_random_access_selector.description"></a><a class="link" href="is_random_access_selector.html#container_gen.reference.is_random_access_selector.description" title="Description">Description</a>
+</h4></div></div></div>
+<p>
+          The boost::adjacency_list class template
+          uses this metafunction to determine whether or not it will provide an internal
+          property map that associates its vertex descriptors with unique indices.
+          Returns boost::mpl::true_ if the storage type will
+          model the Random Access Container concept, boost::mpl::false_
+          otherwise.
+        </p>
+<p>
+          Specialize this metafunction to return boost::mpl::true_ for your custom selector
+          if and only if the storage type to be returned by <a class="link" href="container_gen.html" title="container_gen"><code class="computeroutput"><span class="identifier">container_gen</span></code></a> models the Random Access Container concept.
+        </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="container_gen.reference.is_random_access_selector.definition"></a><a class="link" href="is_random_access_selector.html#container_gen.reference.is_random_access_selector.definition" title="Where defined">Where
+        defined</a>
+</h4></div></div></div>
+<p>
+          
+</p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span>boost/utility/is_random_access_selector.hpp<span class="special">></span>
+</pre>
+<p>
+        </p>
+</div>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"></td>
+<td align="right"><div class="copyright-footer">Copyright © 1997 -2011 Andrew Lumsdaine, Lie-Quan Lee, Thomas Claveirole,
+      Jeremy G. Siek, Cromwell D. Enage<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="associative_container_gen.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a><a accesskey="n" href="is_unique_associative_selector.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/utility-container_gen/libs/utility/container_gen/doc/html/container_gen/reference/is_unique_associative_selector.html
==============================================================================
--- (empty file)
+++ sandbox/utility-container_gen/libs/utility/container_gen/doc/html/container_gen/reference/is_unique_associative_selector.html	2011-09-23 03:42:23 EDT (Fri, 23 Sep 2011)
@@ -0,0 +1,87 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>is_unique_associative_selector</title>
+<link rel="stylesheet" href="../../boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.76.1">
+<link rel="home" href="../../index.html" title="Chapter 1. container_gen 0.1">
+<link rel="up" href="../reference.html" title="Reference">
+<link rel="prev" href="is_random_access_selector.html" title="is_random_access_selector">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr><td valign="top"><img alt="C++ Boost" width="277" height="86" src="../../../../../../../boost.png"></td></tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="is_random_access_selector.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="container_gen.reference.is_unique_associative_selector"></a><a class="link" href="is_unique_associative_selector.html" title="is_unique_associative_selector"><code class="computeroutput"><span class="identifier">is_unique_associative_selector</span></code></a>
+</h3></div></div></div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="container_gen.reference.is_unique_associative_selector.synopsis"></a><a class="link" href="is_unique_associative_selector.html#container_gen.reference.is_unique_associative_selector.synopsis" title="Synopsis">Synopsis</a>
+</h4></div></div></div>
+<p>
+          
+</p>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span>
+
+    <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">Selector</span><span class="special">></span>
+    <span class="keyword">struct</span> <span class="identifier">is_unique_associative_selector</span> <span class="special">:</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">false_</span>
+    <span class="special">{</span>
+    <span class="special">};</span>
+
+<span class="special">}</span>  <span class="comment">// namespace boost
+</span></pre>
+<p>
+        </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="container_gen.reference.is_unique_associative_selector.description"></a><a class="link" href="is_unique_associative_selector.html#container_gen.reference.is_unique_associative_selector.description" title="Description">Description</a>
+</h4></div></div></div>
+<p>
+          The boost::parallel_edge_traits metafunction
+          uses this metafunction to specify whether or not the storage type returned
+          by <a class="link" href="container_gen.html" title="container_gen"><code class="computeroutput"><span class="identifier">container_gen</span></code></a> will allow parallel
+          edges--that is, if the storage type will <span class="bold"><strong>not</strong></span>
+          model the Unique Associative Container concept. Returns
+          boost::mpl::true_
+          if the storage type <span class="bold"><strong>will</strong></span> model the Unique Associative Container concept, boost::mpl::false_
+          otherwise.
+        </p>
+<p>
+          Specialize this metafunction to return boost::mpl::true_ for your custom selector
+          if and only if the storage type to be returned by <a class="link" href="container_gen.html" title="container_gen"><code class="computeroutput"><span class="identifier">container_gen</span></code></a> models the Unique Associative Container concept.
+        </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="container_gen.reference.is_unique_associative_selector.definition"></a><a class="link" href="is_unique_associative_selector.html#container_gen.reference.is_unique_associative_selector.definition" title="Where defined">Where
+        defined</a>
+</h4></div></div></div>
+<p>
+          
+</p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span>boost/utility/is_unique_assoc_selector.hpp<span class="special">></span>
+</pre>
+<p>
+        </p>
+</div>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"></td>
+<td align="right"><div class="copyright-footer">Copyright © 1997 -2011 Andrew Lumsdaine, Lie-Quan Lee, Thomas Claveirole,
+      Jeremy G. Siek, Cromwell D. Enage<p>
+        Distributed under 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)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="is_random_access_selector.html"><img src="../../images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="../../images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="../../images/home.png" alt="Home"></a>
+</div>
+</body>
+</html>
Added: sandbox/utility-container_gen/libs/utility/container_gen/doc/ref_assoc_container_gen.qbk
==============================================================================
--- (empty file)
+++ sandbox/utility-container_gen/libs/utility/container_gen/doc/ref_assoc_container_gen.qbk	2011-09-23 03:42:23 EDT (Fri, 23 Sep 2011)
@@ -0,0 +1,61 @@
+[/=============================================================================
+    Copyright (C) 2011 Cromwell D. Enage
+
+    Distributed under 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])
+=============================================================================/]
+
+[section:associative_container_gen `associative_container_gen`]
+
+[section Synopsis]
+[reference__associative_container_gen]
+[endsect]
+
+[section Description]
+This metafunction class can be used to determine the appropriate associative
+container type given the specified selector.  The example routine below uses
+the `associative_container_gen` return type to associate each distinct string
+character with the number of times it appears in the string.
+
+[example__output_char_tallies__definition]
+
+This library provides specializations of this metafunction class for each
+selector it provides whose resulting storage type models the
+__Associative_Container__ concept.  Here, two such selectors are passed in
+calls to the example routine.
+
+[example__output_char_tallies__calls]
+
+It is possible to nest containers via `associative_container_gen`, e.g.:
+
+``
+typedef _mpl_apply_wrap2_<
+            associative_container_gen<mapS>
+          , _mpl_apply_wrap1_<associative_container_gen<setS>,char>::type
+          , _std_string_
+        >::type
+        MapOfCharSets2Strings;
+``
+
+[important
+    This last capability depends on __Boost_Type_Traits_Operators__, which has
+    been recently accepted into Boost but is currently not part of an official
+    release.  For now, you must perform a Subversion checkout from the
+    __SVN_Trac__, add the `type_traits` module to your list of header
+    directories, and `#define BOOST_CONTAINER_GEN_USES_OP_TYPE_TRAITS` in order
+    to obtain this capability.
+
+    If you do not need this capability, then you do not need
+    __Boost_Type_Traits_Operators__.
+]
+[endsect]
+
+[section:definition Where defined]
+``
+#include <__boost_utility_associative_container_gen_hpp__>
+``
+[endsect]
+
+[endsect] [/ associative_container_gen]
+
Added: sandbox/utility-container_gen/libs/utility/container_gen/doc/ref_container_gen.qbk
==============================================================================
--- (empty file)
+++ sandbox/utility-container_gen/libs/utility/container_gen/doc/ref_container_gen.qbk	2011-09-23 03:42:23 EDT (Fri, 23 Sep 2011)
@@ -0,0 +1,63 @@
+[/=============================================================================
+    Copyright (C) 2000-2001 Jeremy G. Siek
+    Copyright (C) 2011 Cromwell D. Enage
+
+    Distributed under 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])
+=============================================================================/]
+
+[section:container_gen `container_gen`]
+
+[section Synopsis]
+[reference__container_gen]
+[endsect]
+
+[section Description]
+The __graph_adjacency_list__ class template uses this metafunction to map the
+`OutEdgeList` and `VertexList` selectors to the actual container types used for
+the graph storage.  This library provides specializations of this metafunction
+for each selector it defines.  Here are the selector definitions:
+
+[reference__container_selectors]
+
+The specialization for the `listS` selector is shown here.
+
+[reference__container_gen__list_specialization]
+
+To use some other container of your choice, or to supply more template
+arguments to a standard container than just `ValueType`, define a selector
+class and then specialize this metafunction for your selector.  In the code
+below we show how to create a selector that lets you specify the allocator
+to be used with the __std_list__.
+
+[example__container_gen__list_with_allocator_selector]
+
+It is possible to nest associative containers via `container_gen`, e.g.:
+
+``
+typedef container_gen<setS,container_gen<setS,int>::type>::type
+        SetOfSetsOfIntegers;
+``
+
+[important
+    This last capability depends on __Boost_Type_Traits_Operators__, which has
+    been recently accepted into Boost but is currently not part of an official
+    release.  For now, you must perform a Subversion checkout from the
+    __SVN_Trac__, add the `type_traits` module to your list of header
+    directories, and `#define BOOST_CONTAINER_GEN_USES_OP_TYPE_TRAITS` in order
+    to obtain this capability.
+
+    If you do not need this capability, then you do not need
+    __Boost_Type_Traits_Operators__.
+]
+[endsect]
+
+[section:definition Where defined]
+``
+#include <__boost_utility_container_gen_hpp__>
+``
+[endsect]
+
+[endsect] [/ container_gen]
+
Added: sandbox/utility-container_gen/libs/utility/container_gen/doc/ref_is_rand_access_selector.qbk
==============================================================================
--- (empty file)
+++ sandbox/utility-container_gen/libs/utility/container_gen/doc/ref_is_rand_access_selector.qbk	2011-09-23 03:42:23 EDT (Fri, 23 Sep 2011)
@@ -0,0 +1,34 @@
+[/=============================================================================
+    Copyright (C) 2011 Cromwell D. Enage
+
+    Distributed under 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])
+=============================================================================/]
+
+[section:is_random_access_selector `is_random_access_selector`]
+
+[section Synopsis]
+[reference__is_random_access_selector]
+[endsect]
+
+[section Description]
+The __graph_adjacency_list__ class template uses this metafunction to determine
+whether or not it will provide an internal property map that associates its
+vertex descriptors with unique indices.  Returns __mpl_true__ if the storage
+type will model the __Random_Access_Container__ concept, __mpl_false__
+otherwise.
+
+Specialize this metafunction to return __mpl_true__ for your custom selector if
+and only if the storage type to be returned by __container_gen__ models the
+__Random_Access_Container__ concept.
+[endsect]
+
+[section:definition Where defined]
+``
+#include <__boost_utility_is_random_access_selector_hpp__>
+``
+[endsect]
+
+[endsect] [/ is_random_access_selector]
+
Added: sandbox/utility-container_gen/libs/utility/container_gen/doc/ref_is_unique_assoc_sel.qbk
==============================================================================
--- (empty file)
+++ sandbox/utility-container_gen/libs/utility/container_gen/doc/ref_is_unique_assoc_sel.qbk	2011-09-23 03:42:23 EDT (Fri, 23 Sep 2011)
@@ -0,0 +1,35 @@
+[/=============================================================================
+    Copyright (C) 2011 Cromwell D. Enage
+
+    Distributed under 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])
+=============================================================================/]
+
+[section:is_unique_associative_selector `is_unique_associative_selector`]
+
+[section Synopsis]
+[reference__is_unique_associative_selector]
+[endsect]
+
+[section Description]
+The __graph_parallel_edge_traits__ metafunction uses this metafunction to
+specify whether or not the storage type returned by __container_gen__ will
+allow parallel edges--that is, if the storage type will *not* model the
+__Unique_Associative_Container__ concept.  Returns __mpl_true__ if the storage
+type *will* model the __Unique_Associative_Container__ concept, __mpl_false__
+otherwise.
+
+Specialize this metafunction to return __mpl_true__ for your custom selector if
+and only if the storage type to be returned by __container_gen__ models the
+__Unique_Associative_Container__ concept.
+[endsect]
+
+[section:definition Where defined]
+``
+#include <__boost_utility_is_unique_assoc_selector_hpp__>
+``
+[endsect]
+
+[endsect] [/ is_unique_associative_selector]
+
Added: sandbox/utility-container_gen/libs/utility/container_gen/doc/reference.qbk
==============================================================================
--- (empty file)
+++ sandbox/utility-container_gen/libs/utility/container_gen/doc/reference.qbk	2011-09-23 03:42:23 EDT (Fri, 23 Sep 2011)
@@ -0,0 +1,22 @@
+[/=============================================================================
+    Copyright (C) 2011 Cromwell D. Enage
+
+    Distributed under 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])
+=============================================================================/]
+
+[section Reference]
+
+[include ref_container_gen.qbk]
+[include ref_assoc_container_gen.qbk]
+[include ref_is_rand_access_selector.qbk]
+[include ref_is_unique_assoc_sel.qbk]
+
+  * __container_gen__
+  * __associative_container_gen__
+  * __is_random_access_selector__
+  * __is_unique_associative_selector__
+
+[endsect] [/ Reference]
+
Added: sandbox/utility-container_gen/libs/utility/container_gen/example/output_char_tallies.cpp
==============================================================================
--- (empty file)
+++ sandbox/utility-container_gen/libs/utility/container_gen/example/output_char_tallies.cpp	2011-09-23 03:42:23 EDT (Fri, 23 Sep 2011)
@@ -0,0 +1,61 @@
+//=======================================================================
+// Copyright (C) 2011 Cromwell D. Enage
+//
+// Distributed under 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)
+//=======================================================================
+#include <string>
+#include <boost/mpl/apply_wrap.hpp>
+#include <boost/utility/associative_container_gen.hpp>
+
+//[example__output_char_tallies__definition
+template <typename Selector>
+void output_char_tallies(std::string const& str, Selector)
+{
+    typedef typename boost::mpl::apply_wrap2<
+                boost::associative_container_gen<Selector>
+              , char
+              , std::size_t
+            >::type
+            FrequencyTable;
+
+    FrequencyTable freq_table;
+    char reverse_counter = 0;
+
+    for (std::size_t i = 0; i < str.size(); ++i)
+    {
+        typename FrequencyTable::iterator ft_itr = freq_table.find(str[i]);
+
+        if (ft_itr == freq_table.end())
+        {
+            freq_table.insert(typename FrequencyTable::value_type(str[i], 1));
+        }
+        else
+        {
+            ++ft_itr->second;
+        }
+    }
+
+    for (
+        typename FrequencyTable::const_iterator ft_itr = freq_table.begin();
+        ft_itr != freq_table.end();
+        ++ft_itr
+    )
+    {
+        std::cout << ft_itr->first << ": " << ft_itr->second << std::endl;
+    }
+
+    std::cout << std::endl;
+}
+//]
+
+//[example__output_char_tallies__calls
+int main(int, char**)
+{
+    output_char_tallies("abacadabra", boost::hash_mapS());
+    output_char_tallies("loolapalooza", boost::multimapS());
+    return 0;
+}
+//]
+