$include_dir="/home/hyper-archives/boost-commit/include"; include("$include_dir/msg-header.inc") ?>
Subject: [Boost-commit] svn:boost r74543 - in sandbox/tree_node/libs/tree_node/doc: . html/tree_node/reference
From: sponage_at_[hidden]
Date: 2011-09-23 22:11:44
Author: expaler
Date: 2011-09-23 22:11:39 EDT (Fri, 23 Sep 2011)
New Revision: 74543
URL: http://svn.boost.org/trac/boost/changeset/74543
Log:
Updated Boost.TreeNode documentation to remove Boost.TypeTraitsOperators dependency.
Added:
   sandbox/tree_node/libs/tree_node/doc/concept_assoc_tree_node.qbk   (contents, props changed)
   sandbox/tree_node/libs/tree_node/doc/concept_descendant_iterator.qbk   (contents, props changed)
   sandbox/tree_node/libs/tree_node/doc/concept_full_iterator.qbk   (contents, props changed)
   sandbox/tree_node/libs/tree_node/doc/concept_iterator.qbk   (contents, props changed)
   sandbox/tree_node/libs/tree_node/doc/concept_raci_tree_node.qbk   (contents, props changed)
   sandbox/tree_node/libs/tree_node/doc/concept_tree_node.qbk   (contents, props changed)
   sandbox/tree_node/libs/tree_node/doc/concepts.qbk   (contents, props changed)
   sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/breadth_first_iterator.html   (contents, props changed)
   sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/depth_first_iterator.html   (contents, props changed)
   sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/post_order_iterator.html   (contents, props changed)
   sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/pre_order_iterator.html   (contents, props changed)
   sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/raw_associative_node.html   (contents, props changed)
   sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/raw_node.html   (contents, props changed)
   sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/simple_associative_node.html   (contents, props changed)
   sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/simple_node.html   (contents, props changed)
   sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/traversal_state.html   (contents, props changed)
   sandbox/tree_node/libs/tree_node/doc/ref_breadth_first_iterator.qbk   (contents, props changed)
   sandbox/tree_node/libs/tree_node/doc/ref_depth_first_iterator.qbk   (contents, props changed)
   sandbox/tree_node/libs/tree_node/doc/ref_post_order_iterator.qbk   (contents, props changed)
   sandbox/tree_node/libs/tree_node/doc/ref_pre_order_iterator.qbk   (contents, props changed)
   sandbox/tree_node/libs/tree_node/doc/ref_raw_associative_node.qbk   (contents, props changed)
   sandbox/tree_node/libs/tree_node/doc/ref_raw_node.qbk   (contents, props changed)
   sandbox/tree_node/libs/tree_node/doc/ref_simple_associative_node.qbk   (contents, props changed)
   sandbox/tree_node/libs/tree_node/doc/ref_simple_node.qbk   (contents, props changed)
   sandbox/tree_node/libs/tree_node/doc/ref_traversal_state.qbk   (contents, props changed)
   sandbox/tree_node/libs/tree_node/doc/reference.qbk   (contents, props changed)
   sandbox/tree_node/libs/tree_node/doc/tree_node.qbk   (contents, props changed)
Added: sandbox/tree_node/libs/tree_node/doc/concept_assoc_tree_node.qbk
==============================================================================
--- (empty file)
+++ sandbox/tree_node/libs/tree_node/doc/concept_assoc_tree_node.qbk	2011-09-23 22:11:39 EDT (Fri, 23 Sep 2011)
@@ -0,0 +1,174 @@
+[/=============================================================================
+    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_tree_node Associative Tree Node]
+
+[section Description]
+Models of this concept provide key-based access to their child nodes.
+[endsect]
+
+[section Refinement of]
+__Tree_Node__
+[endsect]
+
+[variablelist Notation
+    [[`Node`][A type that models the [*Associative Tree Node] concept.]]
+    [[`node`][An object of type `Node::pointer`.]]
+    [[`const_node`][An object of type `Node::const_pointer`.]]
+    [[`Key`][The key type of `Node`.]]
+    [[`key`][An object of type `Key const&`.]]
+    [[`Data`][The data type of `Node`.]]
+    [[`data`][An object of type `Data const&`.]]
+]
+
+[section:types Associated Types]
+One new type is introduced.
+
+[table
+    [[Name][Expression][Description][Requirements]]
+    [
+        [Key type]
+        [`Node::key_type`]
+        [The type of a key that a tree node will associate with a child node.]
+        []
+    ]
+]
+
+In addition, the requirements for the child iterator types are strengthened:
+
+  * The value type of `Node::child_iterator` must be
+    [^_std_pair_<Node::key_type const&,Node::pointer>].
+  * The value type of `Node::const_child_iterator` must be
+    [^_std_pair_<Node::key_type const&,Node::const_pointer>].
+
+[endsect]
+
+[section:expressions Valid Expressions and Semantics]
+In addition to the expressions defined in the __Tree_Node__ concept, the
+following expressions must be valid.
+
+[table
+    [
+        [Name]
+        [Expression]
+        [Type requirements]
+        [Return Type]
+        [Semantics]
+        [__Runtime_Complexity__]
+    ]
+    [
+        [Child creation with data]
+        [`node->add_child(key, data);`]
+        []
+        [`Node::pointer`]
+        [
+            Creates and returns a tree node to be associated with the specified
+            key in the range of children of the invoking node.  The node
+            returned will store the specified data.
+        ]
+        [Amortized constant]
+    ]
+    [
+        [Child creation]
+        [`node->add_child(key)`]
+        [
+            The data type of `Node` must model the __Default_Constructible__
+            concept.
+        ]
+        [`Node::pointer`]
+        [
+            Creates and returns a tree node to be associated with the specified
+            key in the range of children of the invoking node.
+        ]
+        [Amortized constant]
+    ]
+    [
+        [Child copy creation]
+        [`node->add_child(key, const_node)`]
+        []
+        [`Node::pointer`]
+        [
+            Creates and returns a deep copy of `const_node` to be associated
+            with the specified key in the range of children of the invoking
+            node.
+        ]
+        [Linear with respect to the number of descendants of `const_node`]
+    ]
+    [
+        [Child search]
+        [`const_node->find_child(key)`]
+        []
+        [`Node::const_child_iterator`]
+        [
+            Returns an iterator pointing to a child node associated with the
+            specified key, or `const_node->get_child_end()` if no such child
+            exists.
+        ]
+        [Logarithmic]
+    ]
+    [
+        [Child search]
+        [`node->find_child(key)`]
+        []
+        [`Node::child_iterator`]
+        [
+            Returns an iterator pointing to a child node associated with the
+            specified key, or `node->get_child_end()` if no such child exists.
+        ]
+        [Logarithmic]
+    ]
+    [
+        [Child search range]
+        [`const_node->find_children(key)`]
+        []
+        [[^_std_pair_<Node::const_child_iterator,Node::const_child_iterator>]]
+        [
+            Returns a pair `p` such that `[p.first, p.second)` is a range
+            of all child nodes associated with the specified key.  If no such
+            children exist, then the range will be empty.
+        ]
+        [Logarithmic]
+    ]
+    [
+        [Child search range]
+        [`node->find_children(key)`]
+        []
+        [[^_std_pair_<Node::child_iterator,Node::child_iterator>]]
+        [
+            Returns a pair `p` such that `[p.first, p.second)` is a range
+            of all child nodes associated with the specified key.  If no such
+            children exist, then the range will be empty.
+        ]
+        [Logarithmic]
+    ]
+    [
+        [Remove children]
+        [`const_node->remove_children(key)`]
+        []
+        [`std::size_t`]
+        [
+            Removes all child nodes associated with the specified key from the
+            tree node.  Returns the number of children removed.
+        ]
+        [
+            Linear with respect to the number of children and their descendants
+            in the range to be removed, plus logarithmic
+        ]
+    ]
+]
+[endsect]
+
+[section Models]
+
+  * __raw_associative_node__
+  * __simple_associative_node__
+
+[endsect]
+
+[endsect] [/ Associative Tree Node]
+
Added: sandbox/tree_node/libs/tree_node/doc/concept_descendant_iterator.qbk
==============================================================================
--- (empty file)
+++ sandbox/tree_node/libs/tree_node/doc/concept_descendant_iterator.qbk	2011-09-23 22:11:39 EDT (Fri, 23 Sep 2011)
@@ -0,0 +1,105 @@
+[/=============================================================================
+    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:tree_node_desc_iterator Tree Node Descendant Iterator]
+
+[section Description]
+This concept may seem redundant at first, especially when iterating through
+__Random_Access_Child_Iterator_Tree_Node__ objects; however, for
+__Associative_Tree_Node__ objects, models of this concept provide the sole
+means of accessing the key associated with each node being traversed.  (Root
+nodes are not associated with keys at the tree node level, so models of this
+concept do not traverse them.)
+[endsect]
+
+[section Refinement of]
+__Tree_Node_Iterator__
+[endsect]
+
+[variablelist Notation
+    [
+        [`Iterator`]
+        [A type that models the [*Tree Node Descendant Iterator] concept.]
+    ]
+    [
+        [`itr`]
+        [An object of type `Iterator`.]
+    ]
+    [
+        [`Node`]
+        [A type that models the __Tree_Node__ concept.]
+    ]
+    [
+        [`node`]
+        [An object of type `Node::pointer`.]
+    ]
+    [
+        [`const_node`]
+        [An object of type `Node::const_pointer`.]
+    ]
+]
+
+[section:types Associated Types]
+No additional types beyond those defined in the __Tree_Node_Iterator__ concept;
+however, the requirements for the value type are strengthened: its value type,
+in turn, must model the __Forward_Iterator__ concept.
+[endsect]
+
+[section:expressions Valid Expressions and Semantics]
+None beyond those defined in the __Tree_Node_Iterator__ concept; however, the
+type requirements for the constructors are strengthened, and their semantics
+are clarified.
+
+[table
+    [
+        [Name]
+        [Expression]
+        [Type requirements]
+        [Semantics]
+    ]
+    [
+        [Constructor from mutable node]
+        [``
+            Iterator(node)
+            Iterator itr(node)
+        ``]
+        []
+        [
+            Constructs an iterator that will iterate through the descendants of
+            the specified node.
+        ]
+    ]
+    [
+        [Constructor from immutable node]
+        [``
+            Iterator(const_node)
+            Iterator itr(const_node)
+        ``]
+        [
+            The value type of `Iterator` must be the value type of
+            `Node::const_child_iterator`.
+        ]
+        [
+            Constructs an iterator that will iterate through the descendants of
+            the specified node.
+        ]
+    ]
+]
+[endsect]
+
+[section Models]
+
+  * The return type of __make_breadth_first_descendant_iterator__.
+  * The return type of __make_pre_order_descendant_iterator__.
+  * The return type of __make_post_order_descendant_iterator__.
+  * The return type of __make_depth_first_descendant_iterator__.
+
+[endsect]
+
+[endsect] [/ Tree Node Descendant Iterator]
+
Added: sandbox/tree_node/libs/tree_node/doc/concept_full_iterator.qbk
==============================================================================
--- (empty file)
+++ sandbox/tree_node/libs/tree_node/doc/concept_full_iterator.qbk	2011-09-23 22:11:39 EDT (Fri, 23 Sep 2011)
@@ -0,0 +1,83 @@
+[/=============================================================================
+    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:full_tree_node_iterator Full Tree Node Iterator]
+
+[section Description]
+This concept specifies the requirement that models traverse the root node as
+well as its descendants.
+[endsect]
+
+[section Refinement of]
+__Tree_Node_Iterator__
+[endsect]
+
+[variablelist Notation
+    [[`Iterator`][A type that models the [*Full Tree Node Iterator] concept.]]
+    [[`itr`][An object of type `Iterator`.]]
+    [[`Node`][A type that models the __Tree_Node__ concept.]]
+    [[`node`][An object of type `Node::pointer`.]]
+    [[`const_node`][An object of type `Node::const_pointer`.]]
+]
+
+[section:types Associated Types]
+No additional types beyond those defined in the __Tree_Node_Iterator__ concept;
+however, the requirements for the value type are strengthened: its unqualified
+value type, in turn, must model the __Tree_Node__ concept.
+[endsect]
+
+[section:expressions Valid Expressions and Semantics]
+None beyond those defined in the __Tree_Node_Iterator__ concept; however, the
+type requirements for the constructors are strengthened, and their semantics
+are clarified.
+
+[table
+    [
+        [Name]
+        [Expression]
+        [Type requirements]
+        [Semantics]
+    ]
+    [
+        [Constructor from mutable node]
+        [``
+            Iterator(node)
+            Iterator itr(node)
+        ``]
+        []
+        [
+            Constructs an iterator that will iterate through the specified node
+            and its descendants.
+        ]
+    ]
+    [
+        [Constructor from immutable node]
+        [``
+            Iterator(const_node)
+            Iterator itr(const_node)
+        ``]
+        [The value type of `Iterator::value_type` must be `const`-qualified.]
+        [
+            Constructs an iterator that will iterate through the specified node
+            and its descendants.
+        ]
+    ]
+]
+[endsect]
+
+[section Models]
+
+  * The return type of __make_breadth_first_iterator__.
+  * The return type of __make_pre_order_iterator__.
+  * The return type of __make_post_order_iterator__.
+  * The return type of __make_depth_first_iterator__.
+
+[endsect]
+
+[endsect] [/ Tree Node Iterator]
+
Added: sandbox/tree_node/libs/tree_node/doc/concept_iterator.qbk
==============================================================================
--- (empty file)
+++ sandbox/tree_node/libs/tree_node/doc/concept_iterator.qbk	2011-09-23 22:11:39 EDT (Fri, 23 Sep 2011)
@@ -0,0 +1,106 @@
+[/=============================================================================
+    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:tree_node_iterator Tree Node Iterator]
+
+[section Description]
+Tree-traversing iterators at the __Tree_Node__ level must be created
+differently from iterators at the __Container__ level.  Furthermore, tree node
+iterators typically store more stateful information than their __Container__
+counterparts; requiring two of them to check for dereferenceability may prove
+somewhat memory-inefficient.  This concept provides an alternate means of
+checking for dereferenceability that requires the use of only the active
+iterator.
+[endsect]
+
+[section Refinement of]
+__Forward_Iterator__
+[endsect]
+
+[variablelist Notation
+    [[`Iterator`][A type that models the [*Tree Node Iterator] concept.]]
+    [[`itr`][An object of type `Iterator`.]]
+    [[`Node`][A type that models the __Tree_Node__ concept.]]
+    [[`node`][An object of type `Node::pointer`.]]
+    [[`const_node`][An object of type `Node::const_pointer`.]]
+]
+
+[section:types Associated Types]
+No additional types beyond those defined in the __Forward_Iterator__ concept;
+however, the requirements for the value type are strengthened: it must model
+the __Trivial_Iterator__ concept.
+[endsect]
+
+[section:expressions Valid Expressions and Semantics]
+In addition to the expressions defined in the __Forward_Iterator__ concept, the
+following expressions must be valid.
+
+[table
+    [
+        [Name]
+        [Expression]
+        [Return Type]
+        [Semantics]
+        [__Runtime_Complexity__]
+    ]
+    [
+        [Default constructor]
+        [``
+            Iterator()
+            Iterator itr
+        ``]
+        []
+        [Constructs a non-dereferenceable (past-the-end) iterator.]
+        [Constant]
+    ]
+    [
+        [Constructor from mutable node]
+        [``
+            Iterator(node)
+            Iterator itr(node)
+        ``]
+        []
+        [Refinement-specific.]
+        [Amortized constant]
+    ]
+    [
+        [Constructor from immutable node]
+        [``
+            Iterator(const_node)
+            Iterator itr(const_node)
+        ``]
+        []
+        [Refinement-specific.]
+        [Amortized constant]
+    ]
+    [
+        [Dereferenceability]
+        [`itr`]
+        [A type that can be used in a boolean context.]
+        [
+            Returns a value convertible to `true` if `itr` is dereferenceable,
+            a value convertible to `false` if it is past-the-end.
+        ]
+        [Constant]
+    ]
+]
+
+The __Forward_Iterator__ requirement that the increment operators must exhibit
+constant time complexity has been relaxed; they now need only exhibit linear
+time complexity with respect to the number of descendants in the worst case.
+[endsect]
+
+[section Models]
+
+  * All models of the __Full_Tree_Node_Iterator__ concept.
+  * All models of the __Tree_Node_Descendant_Iterator__ concept.
+
+[endsect]
+
+[endsect] [/ Tree Node Iterator]
+
Added: sandbox/tree_node/libs/tree_node/doc/concept_raci_tree_node.qbk
==============================================================================
--- (empty file)
+++ sandbox/tree_node/libs/tree_node/doc/concept_raci_tree_node.qbk	2011-09-23 22:11:39 EDT (Fri, 23 Sep 2011)
@@ -0,0 +1,118 @@
+[/=============================================================================
+    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:raci_tree_node Random Access Child Iterator Tree Node]
+
+[section Description]
+Models of this concept provide constant-time random access to their child
+nodes.
+[endsect]
+
+[section Refinement of]
+__Tree_Node__
+[endsect]
+
+[variablelist Notation
+    [
+        [`Node`]
+        [
+            A type that models the [*Random Access Child Iterator Tree Node]
+            concept.
+        ]
+    ]
+    [
+        [`node`]
+        [An object of type `Node::pointer`.]
+    ]
+    [
+        [`const_node`]
+        [An object of type `Node::const_pointer`.]
+    ]
+    [
+        [`Data`]
+        [The data type of `Node`.]
+    ]
+    [
+        [`data`]
+        [An object of type `Data const&`.]
+    ]
+]
+
+[section:types Associated Types]
+No additional types beyond those defined in the __Tree_Node__ concept; however,
+the requirements for the child iterator types are strengthened:
+
+  * Both types must model the __Random_Access_Iterator__ concept.
+  * The value type of `Node::child_iterator` must be `Node::pointer`.
+  * The value type of `Node::const_child_iterator` must be
+    `Node::const_pointer`.
+
+[endsect]
+
+[section:expressions Valid Expressions and Semantics]
+In addition to the expressions defined in the __Tree_Node__ concept, the
+following expressions must be valid.
+
+[table
+    [
+        [Name]
+        [Expression]
+        [Type requirements]
+        [Return Type]
+        [Semantics]
+        [__Runtime_Complexity__]
+    ]
+    [
+        [Child creation with data]
+        [`node->add_child(data)`]
+        []
+        [`Node::pointer`]
+        [
+            Creates and returns a tree node to be stored in the range of
+            children of the invoking node.  The node returned will store
+            the specified data.
+        ]
+        [Amortized constant]
+    ]
+    [
+        [Child creation]
+        [`node->add_child()`]
+        [
+            The data type of `Node` must model the __Default_Constructible__
+            concept.
+        ]
+        [`Node::pointer`]
+        [
+            Creates and returns a tree node to be stored in the range of
+            children of the invoking node.
+        ]
+        [Amortized constant]
+    ]
+    [
+        [Child copy creation]
+        [`node->add_child(const_node)`]
+        []
+        [`Node::pointer`]
+        [
+            Creates and returns a deep copy of `const_node` to be stored in the
+            range of children of the invoking node.
+        ]
+        [Linear with respect to the number of descendants of `const_node`]
+    ]
+]
+[endsect]
+
+[section Models]
+
+  * __raw_node__
+  * __simple_node__
+
+[endsect]
+
+[endsect] [/ Random-Access Child Iterator Tree Node]
+
Added: sandbox/tree_node/libs/tree_node/doc/concept_tree_node.qbk
==============================================================================
--- (empty file)
+++ sandbox/tree_node/libs/tree_node/doc/concept_tree_node.qbk	2011-09-23 22:11:39 EDT (Fri, 23 Sep 2011)
@@ -0,0 +1,176 @@
+[/=============================================================================
+    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:tree_node Tree Node]
+
+[section Description]
+All tree node implementations that this library provides model this concept.
+[endsect]
+
+[variablelist Notation
+    [[`Node`][A type that models the [*Tree Node] concept.]]
+    [[`node`][An object of type `Node::pointer`.]]
+    [[`const_node`][An object of type `Node::const_pointer`.]]
+]
+
+[section:types Associated Types]
+[table
+    [[Name][Expression][Description][Requirements]]
+    [
+        [Data type]
+        [`Node::data_type`]
+        [The type of the object stored in a tree node.]
+        [
+            It must model the __Copy_Constructible__ concept, but need not
+            model the __Assignable__ concept.
+        ]
+    ]
+    [
+        [Pointer type]
+        [`Node::pointer`]
+        [The type of a pointer to a `Node` object.]
+        [
+            It must model the __Trivial_Iterator__ concept, it must point to
+            a mutable object, and it must be implicitly convertible to
+            `Node::const_pointer`.
+        ]
+    ]
+    [
+        [Pointer-to-const type]
+        [`Node::const_pointer`]
+        [The type of a pointer to a `Node const` object.]
+        [
+            It must model the __Trivial_Iterator__ concept, and it must /not/
+            point to a mutable object.
+        ]
+    ]
+    [
+        [Child iterator type]
+        [`Node::child_iterator`]
+        [
+            The type of iterator used to iterate through the children of a
+            `Node` object.
+        ]
+        [
+            It must model the __Input_Iterator__ concept, and it must be
+            convertible to `Node::const_child_iterator`.
+        ]
+    ]
+    [
+        [Immutable child iterator type]
+        [`Node::const_child_iterator`]
+        [
+            The type of iterator used to iterate through the children of a
+            `Node const` object.
+        ]
+        [
+            It must model the __Input_Iterator__ concept, and it must be
+            convertible to `Node::const_child_iterator`.
+        ]
+    ]
+]
+[endsect]
+
+[section:expressions Valid Expressions and Semantics]
+[table
+    [[Name][Expression][Return Type][Semantics][__Runtime_Complexity__]]
+    [
+        [Data access]
+        [`const_node->get_data()`]
+        [`Data const&`]
+        [Returns the object stored in the tree node.]
+        [Constant]
+    ]
+    [
+        [Data access]
+        [`node->get_data()`]
+        [`Data&`]
+        [Returns the object stored in the tree node.]
+        [Constant]
+    ]
+    [
+        [Parent access]
+        [`const_node->get_parent()`]
+        [`Node::const_pointer`]
+        [
+            Returns the parent of the tree node, or a null pointer if the node
+            is the root.
+        ]
+        [Constant]
+    ]
+    [
+        [Parent access]
+        [`node->get_parent()`]
+        [`Node::pointer`]
+        [
+            Returns the parent of the tree node, or a null pointer if the node
+            is the root.
+        ]
+        [Constant]
+    ]
+    [
+        [Children range begin access]
+        [`const_node->get_child_begin()`]
+        [`Node::const_child_iterator`]
+        [
+            Returns an iterator pointing to the beginning of the range of
+            children of the tree node.  If the range is empty, then the
+            iterator points past-the-end.
+        ]
+        [Constant]
+    ]
+    [
+        [Children range begin access]
+        [`node->get_child_begin()`]
+        [`Node::child_iterator`]
+        [
+            Returns an iterator pointing to the beginning of the range of
+            children of the tree node.  If the range is empty, then the
+            iterator points past-the-end.
+        ]
+        [Constant]
+    ]
+    [
+        [Children range past-the-end access]
+        [`const_node->get_child_end();`]
+        [`Node::const_child_iterator`]
+        [
+            Returns an iterator pointing past the end of the range of children
+            of the tree node.
+        ]
+        [Constant]
+    ]
+    [
+        [Children range past-the-end access]
+        [`node->get_child_end();`]
+        [`Node::child_iterator`]
+        [
+            Returns an iterator pointing past the end of the range of children
+            of the tree node.
+        ]
+        [Constant]
+    ]
+    [
+        [Remove all children]
+        [`node->remove_all_children()`]
+        [`void`]
+        [Removes all children from the tree node.]
+        [Linear with respect to the number of children]
+    ]
+]
+[endsect]
+
+[section Models]
+
+  * All models of the __Random_Access_Child_Iterator_Tree_Node__ concept.
+  * All models of the __Associative_Tree_Node__ concept.
+
+[endsect]
+
+[endsect] [/ Tree Node]
+
Added: sandbox/tree_node/libs/tree_node/doc/concepts.qbk
==============================================================================
--- (empty file)
+++ sandbox/tree_node/libs/tree_node/doc/concepts.qbk	2011-09-23 22:11:39 EDT (Fri, 23 Sep 2011)
@@ -0,0 +1,28 @@
+[/=============================================================================
+    Copyright (C) 2007-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 Concepts]
+
+[include concept_tree_node.qbk]
+[include concept_raci_tree_node.qbk]
+[include concept_assoc_tree_node.qbk]
+[include concept_iterator.qbk]
+[include concept_full_iterator.qbk]
+[include concept_descendant_iterator.qbk]
+
+[heading Core Concepts]
+
+  * __Tree_Node__
+      * __Random_Access_Child_Iterator_Tree_Node__
+      * __Associative_Tree_Node__
+  * __Tree_Node_Iterator__
+      * __Full_Tree_Node_Iterator__
+      * __Tree_Node_Descendant_Iterator__
+
+[endsect] [/ Concepts]
+
Added: sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/breadth_first_iterator.html
==============================================================================
--- (empty file)
+++ sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/breadth_first_iterator.html	2011-09-23 22:11:39 EDT (Fri, 23 Sep 2011)
@@ -0,0 +1,747 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>breadth_first_iterator</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. tree_node 0.1">
+<link rel="up" href="../reference.html" title="Reference">
+<link rel="prev" href="simple_associative_node.html" title="simple_associative_node">
+<link rel="next" href="pre_order_iterator.html" title="pre_order_iterator">
+</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="simple_associative_node.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="pre_order_iterator.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="tree_node.reference.breadth_first_iterator"></a><a class="link" href="breadth_first_iterator.html" title="breadth_first_iterator"><code class="computeroutput"><span class="identifier">breadth_first_iterator</span></code></a>
+</h3></div></div></div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.breadth_first_iterator.synopsis"></a><a class="link" href="breadth_first_iterator.html#tree_node.reference.breadth_first_iterator.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">namespace</span> <span class="identifier">tree_node</span> <span class="special">{</span>
+
+    <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">NodePointer</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">MimicsChildIterator</span><span class="special">></span>
+    <span class="keyword">class</span> <span class="identifier">breadth_first_iterator</span>
+    <span class="special">{</span>
+
+     <span class="keyword">public</span><span class="special">:</span>
+        <span class="keyword">typedef</span> <span class="comment">// implementation_defined
+</span>                <span class="identifier">value_type</span><span class="special">;</span>
+        <span class="keyword">typedef</span> <span class="identifier">value_type</span> <span class="keyword">const</span><span class="special">&</span>
+                <span class="identifier">reference</span><span class="special">;</span>
+        <span class="keyword">typedef</span> <span class="comment">// implementation_defined
+</span>                <span class="identifier">pointer</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">ptrdiff_t</span>
+                <span class="identifier">distance_type</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">forward_iterator_tag</span>
+                <span class="identifier">iterator_category</span><span class="special">;</span>
+
+        <span class="identifier">breadth_first_iterator</span><span class="special">();</span>
+
+        <span class="keyword">explicit</span> <span class="identifier">breadth_first_iterator</span><span class="special">(</span><span class="identifier">NodePointer</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">node</span><span class="special">);</span>
+
+        <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">NP</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">MCI</span><span class="special">></span>
+        <span class="identifier">breadth_first_iterator</span><span class="special">(</span>
+            <span class="identifier">breadth_first_iterator</span><span class="special"><</span><span class="identifier">NP</span><span class="special">,</span><span class="identifier">MCI</span><span class="special">></span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">other</span>
+        <span class="special">);</span>
+
+        <span class="identifier">reference</span> <span class="keyword">operator</span><span class="special">*()</span> <span class="keyword">const</span><span class="special">;</span>
+
+        <span class="identifier">pointer</span> <span class="keyword">operator</span><span class="special">->()</span> <span class="keyword">const</span><span class="special">;</span>
+
+        <span class="identifier">breadth_first_iterator</span><span class="special">&</span> <span class="keyword">operator</span><span class="special">++();</span>
+
+        <span class="identifier">breadth_first_iterator</span> <span class="keyword">operator</span><span class="special">++(</span><span class="keyword">int</span><span class="special">);</span>
+
+        <span class="keyword">operator</span> <span class="identifier">traversal_state</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+
+    <span class="special">};</span>
+
+<span class="special">}}</span>  <span class="comment">// namespace boost::tree_node
+</span></pre>
+<p>
+        </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.breadth_first_iterator.description"></a><a class="link" href="breadth_first_iterator.html#tree_node.reference.breadth_first_iterator.description" title="Description">Description</a>
+</h4></div></div></div>
+<p>
+          This iterator traverses the specified root node and all its descendants
+          in breadth-first fashion, e.g. given the following tree representation:
+        </p>
+<p>
+          
+</p>
+<pre class="programlisting">      <span class="identifier">A</span>
+      <span class="special">|</span>
+  <span class="identifier">C</span><span class="special">---+---</span><span class="identifier">B</span>
+  <span class="special">|</span>       <span class="special">|</span>
+<span class="special">+-+-+</span>   <span class="special">+-+-+</span>
+<span class="special">|</span>   <span class="special">|</span>   <span class="special">|</span>   <span class="special">|</span>
+<span class="identifier">D</span>   <span class="identifier">E</span>   <span class="identifier">F</span>   <span class="identifier">G</span>
+</pre>
+<p>
+        </p>
+<p>
+          If this iterator is a <a class="link" href="../concepts/full_tree_node_iterator.html" title="Full Tree Node Iterator"><span class="bold"><strong>Full Tree Node Iterator</strong></span></a>, then it will traverse
+          the tree nodes in the following order:
+        </p>
+<p>
+          
+</p>
+<pre class="programlisting"><span class="identifier">A</span> <span class="identifier">C</span> <span class="identifier">B</span> <span class="identifier">D</span> <span class="identifier">E</span> <span class="identifier">F</span> <span class="identifier">G</span>
+</pre>
+<p>
+        </p>
+<p>
+          If this iterator is a <a class="link" href="../concepts/tree_node_desc_iterator.html" title="Tree Node Descendant Iterator"><span class="bold"><strong>Tree Node Descendant Iterator</strong></span></a>, then it will
+          traverse the tree nodes in the following order:
+        </p>
+<p>
+          
+</p>
+<pre class="programlisting"><span class="identifier">C</span> <span class="identifier">B</span> <span class="identifier">D</span> <span class="identifier">E</span> <span class="identifier">F</span> <span class="identifier">G</span>
+</pre>
+<p>
+        </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.breadth_first_iterator.definition"></a><a class="link" href="breadth_first_iterator.html#tree_node.reference.breadth_first_iterator.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/tree_node/breadth_first_iterator.hpp<span class="special">></span>
+</pre>
+<p>
+        </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.breadth_first_iterator.tpl_param"></a><a class="link" href="breadth_first_iterator.html#tree_node.reference.breadth_first_iterator.tpl_param" title="Template Parameters">Template
+        Parameters</a>
+</h4></div></div></div>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+                  <p>
+                    Parameter
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Description
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Requirements
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Default
+                  </p>
+                </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">NodePointer</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    The type of a pointer to a tree node.
+                  </p>
+                </td>
+<td>
+                  <p>
+                    It must model the Trivial Iterator concept, and
+                    its value type must model the <a class="link" href="../concepts/tree_node.html" title="Tree Node"><span class="bold"><strong>Tree Node</strong></span></a> concept.
+                  </p>
+                </td>
+<td>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">MimicsChildIterator</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    The type that determines whether this <code class="computeroutput"><span class="identifier">breadth_first_iterator</span></code>
+                    will iterate only through the descendants of a node or will also
+                    include the node in its traversal.
+                  </p>
+                </td>
+<td>
+                  <p>
+                    It must model the Boolean Integral Constant concept.
+                  </p>
+                </td>
+<td>
+                </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.breadth_first_iterator.model_of"></a><a class="link" href="breadth_first_iterator.html#tree_node.reference.breadth_first_iterator.model_of" title="Model of">Model
+        of</a>
+</h4></div></div></div>
+<pre class="programlisting"><span class="special">*</span> <a class="link" href="../concepts/full_tree_node_iterator.html" title="Full Tree Node Iterator"><span class="bold"><strong>Full Tree Node Iterator</strong></span></a> <span class="keyword">if</span> <span class="error">`</span><span class="identifier">MimicsChildIterator</span><span class="special">::</span><span class="identifier">value</span><span class="error">`</span> <span class="identifier">is</span> <span class="error">`</span><span class="keyword">false</span><span class="error">`</span>
+<span class="special">*</span> <a class="link" href="../concepts/tree_node_desc_iterator.html" title="Tree Node Descendant Iterator"><span class="bold"><strong>Tree Node Descendant Iterator</strong></span></a> <span class="keyword">if</span> <span class="error">`</span><span class="identifier">MimicsChildIterator</span><span class="special">::</span><span class="identifier">value</span><span class="error">`</span> <span class="identifier">is</span> <span class="error">`</span><span class="keyword">true</span><span class="error">`</span>
+<span class="special">*</span> Default Constructible
+<span class="special">*</span> Copy Constructible
+<span class="special">*</span> Assignable
+</pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.breadth_first_iterator.public_bases"></a><a class="link" href="breadth_first_iterator.html#tree_node.reference.breadth_first_iterator.public_bases" title="Public Base Classes">Public
+        Base Classes</a>
+</h4></div></div></div>
+<p>
+          None.
+        </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.breadth_first_iterator.members"></a><a class="link" href="breadth_first_iterator.html#tree_node.reference.breadth_first_iterator.members" title="Members">Members</a>
+</h4></div></div></div>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+                  <p>
+                    Name
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Expression
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Where defined
+                  </p>
+                </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+                  <p>
+                    Value type
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">value_type</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <a class="link" href="../concepts/tree_node_iterator.html" title="Tree Node Iterator"><span class="bold"><strong>Tree Node Iterator</strong></span></a>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Reference type
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">reference</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Forward Iterator
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Pointer type
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">pointer</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Forward Iterator
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Distance type
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">distance</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Forward Iterator
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Iterator category
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">iterator_category</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Forward Iterator
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Default constructor
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">breadth_first_iterator</span><span class="special">();</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Default Constructible
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Constructor from im/mutable node
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">breadth_first_iterator</span><span class="special">(</span><span class="identifier">NodePointer</span>
+                    <span class="keyword">const</span><span class="special">&);</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <a class="link" href="../concepts/tree_node_iterator.html" title="Tree Node Iterator"><span class="bold"><strong>Tree Node Iterator</strong></span></a>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Conversion constructor
+                  </p>
+                </td>
+<td>
+                  <p>
+                    
+</p>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">NP</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">MCI</span><span class="special">></span>
+<span class="identifier">breadth_first_iterator</span><span class="special">(</span><span class="identifier">breadth_first_iterator</span><span class="special"><</span><span class="identifier">NP</span><span class="special">,</span><span class="identifier">MCI</span><span class="special">></span> <span class="keyword">const</span><span class="special">&);</span>
+</pre>
+<p>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">breadth_first_iterator</span></code>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Copy constructor
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">breadth_first_iterator</span><span class="special">(</span><span class="identifier">breadth_first_iterator</span>
+                    <span class="keyword">const</span><span class="special">&);</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Copy Constructible
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Assignment operator
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">breadth_first_iterator</span><span class="special">&</span> <span class="keyword">operator</span><span class="special">=(</span><span class="identifier">breadth_first_iterator</span>
+                    <span class="keyword">const</span><span class="special">&);</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Assignable
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Dereference operator
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">reference</span> <span class="keyword">operator</span><span class="special">*()</span> <span class="keyword">const</span><span class="special">;</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Forward Iterator
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Indirection operator
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">pointer</span> <span class="keyword">operator</span><span class="special">->()</span> <span class="keyword">const</span><span class="special">;</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Forward Iterator
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Pre-increment operator
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">breadth_first_iterator</span><span class="special">&</span> <span class="keyword">operator</span><span class="special">++();</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Forward Iterator
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Post-increment operator
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">breadth_first_iterator</span>
+                    <span class="keyword">operator</span><span class="special">++(</span><span class="keyword">int</span><span class="special">);</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Forward Iterator
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Traversal state conversion operator
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">operator</span> <a class="link" href="traversal_state.html" title="traversal_state">traversal_state</a><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <a class="link" href="../concepts/tree_node_iterator.html" title="Tree Node Iterator"><span class="bold"><strong>Tree Node Iterator</strong></span></a>
+                  </p>
+                </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.breadth_first_iterator.non_members"></a><a class="link" href="breadth_first_iterator.html#tree_node.reference.breadth_first_iterator.non_members" title="Non-members">Non-members</a>
+</h4></div></div></div>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+                  <p>
+                    Name
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Expression
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Description
+                  </p>
+                </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+                  <p>
+                    Iterator creation
+                  </p>
+                </td>
+<td>
+                  <p>
+                    
+</p>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">tree_node</span> <span class="special">{</span>
+
+    <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">NodePointer</span><span class="special">></span>
+    <span class="identifier">breadth_first_iterator</span><span class="special"><</span><span class="identifier">NodePointer</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="identifier">make_breadth_first_iterator</span><span class="special">(</span><span class="identifier">NodePointer</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">node</span><span class="special">);</span>
+
+<span class="special">}}</span>  <span class="comment">// namespace boost::tree_node
+</span></pre>
+<p>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Constructs and returns a <code class="computeroutput"><span class="identifier">breadth_first_iterator</span></code>
+                    that will iterate through the specified node and its descendants.
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Descendant iterator creation
+                  </p>
+                </td>
+<td>
+                  <p>
+                    
+</p>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">tree_node</span> <span class="special">{</span>
+
+    <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">NodePointer</span><span class="special">></span>
+    <span class="identifier">breadth_first_iterator</span><span class="special"><</span><span class="identifier">NodePointer</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">true_</span><span class="special">></span>
+        <span class="identifier">make_breadth_first_descendant_iterator</span><span class="special">(</span><span class="identifier">NodePointer</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">node</span><span class="special">);</span>
+
+<span class="special">}}</span>  <span class="comment">// namespace boost::tree_node
+</span></pre>
+<p>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Constructs and returns a <code class="computeroutput"><span class="identifier">breadth_first_iterator</span></code>
+                    that will iterate through the descendants of the specified node.
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Iteration
+                  </p>
+                </td>
+<td>
+                  <p>
+                    
+</p>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">tree_node</span> <span class="special">{</span>
+
+    <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">NodePointer</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">UnaryFunction</span><span class="special">></span>
+    <span class="keyword">void</span>
+        <span class="identifier">breadth_first_iterate</span><span class="special">(</span><span class="identifier">NodePointer</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">node</span><span class="special">,</span> <span class="identifier">UnaryFunction</span> <span class="identifier">function</span><span class="special">);</span>
+
+<span class="special">}}</span>  <span class="comment">// namespace boost::tree_node
+</span></pre>
+<p>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Iterates through the specified node and its descendants in breadth-first
+                    fashion, passing each node pointer dereferenced to the specified
+                    Unary Function object.
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Descendant iteration
+                  </p>
+                </td>
+<td>
+                  <p>
+                    
+</p>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">tree_node</span> <span class="special">{</span>
+
+    <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">NodePointer</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">UnaryFunction</span><span class="special">></span>
+    <span class="keyword">void</span>
+        <span class="identifier">breadth_first_iterate_descendants</span><span class="special">(</span>
+            <span class="identifier">NodePointer</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">node</span>
+          <span class="special">,</span> <span class="identifier">UnaryFunction</span> <span class="identifier">function</span>
+        <span class="special">);</span>
+
+<span class="special">}}</span>  <span class="comment">// namespace boost::tree_node
+</span></pre>
+<p>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Iterates through the descendants of the specified node in breadth-first
+                    fashion, passing each element dereferenced to the specified
+                    Unary Function object.
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Equality
+                  </p>
+                </td>
+<td>
+                  <p>
+                    
+</p>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">tree_node</span> <span class="special">{</span>
+
+    <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">NP1</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">NP2</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">MCI1</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">MCI2</span><span class="special">></span>
+    <span class="keyword">typename</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">enable_if</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">equal_to</span><span class="special"><</span><span class="identifier">MCI1</span><span class="special">,</span><span class="identifier">MCI2</span><span class="special">>,</span><span class="keyword">bool</span><span class="special">>::</span><span class="identifier">type</span>
+        <span class="keyword">operator</span><span class="special">==(</span>
+            <span class="identifier">breadth_first_iterator</span><span class="special"><</span><span class="identifier">NP1</span><span class="special">,</span><span class="identifier">MCI1</span><span class="special">></span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">lhs</span>
+          <span class="special">,</span> <span class="identifier">breadth_first_iterator</span><span class="special"><</span><span class="identifier">NP2</span><span class="special">,</span><span class="identifier">MCI2</span><span class="special">></span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">rhs</span>
+        <span class="special">);</span>
+
+<span class="special">}}</span>  <span class="comment">// namespace boost::tree_node
+</span></pre>
+<p>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Defined by the Input Iterator concept.
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Inequality
+                  </p>
+                </td>
+<td>
+                  <p>
+                    
+</p>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">tree_node</span> <span class="special">{</span>
+
+    <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">NP1</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">NP2</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">MCI1</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">MCI2</span><span class="special">></span>
+    <span class="keyword">typename</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">enable_if</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">equal_to</span><span class="special"><</span><span class="identifier">MCI1</span><span class="special">,</span><span class="identifier">MCI2</span><span class="special">>,</span><span class="keyword">bool</span><span class="special">>::</span><span class="identifier">type</span>
+        <span class="keyword">operator</span><span class="special">!=(</span>
+            <span class="identifier">breadth_first_iterator</span><span class="special"><</span><span class="identifier">NP1</span><span class="special">,</span><span class="identifier">MCI1</span><span class="special">></span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">lhs</span>
+          <span class="special">,</span> <span class="identifier">breadth_first_iterator</span><span class="special"><</span><span class="identifier">NP2</span><span class="special">,</span><span class="identifier">MCI2</span><span class="special">></span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">rhs</span>
+        <span class="special">);</span>
+
+<span class="special">}}</span>  <span class="comment">// namespace boost::tree_node
+</span></pre>
+<p>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Defined by the Input Iterator concept.
+                  </p>
+                </td>
+</tr>
+</tbody>
+</table></div>
+</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 © 2011 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="simple_associative_node.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="pre_order_iterator.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/depth_first_iterator.html
==============================================================================
--- (empty file)
+++ sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/depth_first_iterator.html	2011-09-23 22:11:39 EDT (Fri, 23 Sep 2011)
@@ -0,0 +1,804 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>depth_first_iterator</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. tree_node 0.1">
+<link rel="up" href="../reference.html" title="Reference">
+<link rel="prev" href="post_order_iterator.html" title="post_order_iterator">
+<link rel="next" href="traversal_state.html" title="traversal_state">
+</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="post_order_iterator.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="traversal_state.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="tree_node.reference.depth_first_iterator"></a><a class="link" href="depth_first_iterator.html" title="depth_first_iterator"><code class="computeroutput"><span class="identifier">depth_first_iterator</span></code></a>
+</h3></div></div></div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.depth_first_iterator.synopsis"></a><a class="link" href="depth_first_iterator.html#tree_node.reference.depth_first_iterator.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">namespace</span> <span class="identifier">tree_node</span> <span class="special">{</span>
+
+    <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">NodePointer</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">MimicsChildIterator</span><span class="special">></span>
+    <span class="keyword">class</span> <span class="identifier">depth_first_iterator</span>
+    <span class="special">{</span>
+
+     <span class="keyword">public</span><span class="special">:</span>
+        <span class="keyword">typedef</span> <span class="comment">// implementation_defined
+</span>                <span class="identifier">value_type</span><span class="special">;</span>
+        <span class="keyword">typedef</span> <span class="identifier">value_type</span> <span class="keyword">const</span><span class="special">&</span>
+                <span class="identifier">reference</span><span class="special">;</span>
+        <span class="keyword">typedef</span> <span class="comment">// implementation_defined
+</span>                <span class="identifier">pointer</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">ptrdiff_t</span>
+                <span class="identifier">distance_type</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">forward_iterator_tag</span>
+                <span class="identifier">iterator_category</span><span class="special">;</span>
+
+        <span class="identifier">depth_first_iterator</span><span class="special">();</span>
+
+        <span class="keyword">explicit</span> <span class="identifier">depth_first_iterator</span><span class="special">(</span><span class="identifier">NodePointer</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">node</span><span class="special">);</span>
+
+        <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">NP</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">MCI</span><span class="special">></span>
+        <span class="identifier">depth_first_iterator</span><span class="special">(</span>
+            <span class="identifier">depth_first_iterator</span><span class="special"><</span><span class="identifier">NP</span><span class="special">,</span><span class="identifier">MCI</span><span class="special">></span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">other</span>
+        <span class="special">);</span>
+
+        <span class="identifier">reference</span> <span class="keyword">operator</span><span class="special">*()</span> <span class="keyword">const</span><span class="special">;</span>
+
+        <span class="identifier">pointer</span> <span class="keyword">operator</span><span class="special">->()</span> <span class="keyword">const</span><span class="special">;</span>
+
+        <span class="identifier">depth_first_iterator</span><span class="special">&</span> <span class="keyword">operator</span><span class="special">++();</span>
+
+        <span class="identifier">depth_first_iterator</span> <span class="keyword">operator</span><span class="special">++(</span><span class="keyword">int</span><span class="special">);</span>
+
+        <span class="keyword">operator</span> <span class="identifier">traversal_state</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+
+    <span class="special">};</span>
+
+
+    <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">NP1</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">NP2</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">MCI1</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">MCI2</span><span class="special">></span>
+    <span class="keyword">typename</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">enable_if</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">equal_to</span><span class="special"><</span><span class="identifier">MCI1</span><span class="special">,</span><span class="identifier">MCI2</span><span class="special">>,</span><span class="keyword">bool</span><span class="special">>::</span><span class="identifier">type</span>
+        <span class="keyword">operator</span><span class="special">==(</span>
+            <span class="identifier">depth_first_iterator</span><span class="special"><</span><span class="identifier">NP1</span><span class="special">,</span><span class="identifier">MCI1</span><span class="special">></span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">lhs</span>
+          <span class="special">,</span> <span class="identifier">depth_first_iterator</span><span class="special"><</span><span class="identifier">NP2</span><span class="special">,</span><span class="identifier">MCI2</span><span class="special">></span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">rhs</span>
+        <span class="special">);</span>
+
+
+    <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">NP1</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">NP2</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">MCI1</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">MCI2</span><span class="special">></span>
+    <span class="keyword">typename</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">enable_if</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">equal_to</span><span class="special"><</span><span class="identifier">MCI1</span><span class="special">,</span><span class="identifier">MCI2</span><span class="special">>,</span><span class="keyword">bool</span><span class="special">>::</span><span class="identifier">type</span>
+        <span class="keyword">operator</span><span class="special">!=(</span>
+            <span class="identifier">depth_first_iterator</span><span class="special"><</span><span class="identifier">NP1</span><span class="special">,</span><span class="identifier">MCI1</span><span class="special">></span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">lhs</span>
+          <span class="special">,</span> <span class="identifier">depth_first_iterator</span><span class="special"><</span><span class="identifier">NP2</span><span class="special">,</span><span class="identifier">MCI2</span><span class="special">></span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">rhs</span>
+        <span class="special">);</span>
+
+
+    <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">NodePointer</span><span class="special">></span>
+    <span class="identifier">depth_first_iterator</span><span class="special"><</span><span class="identifier">NodePointer</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="identifier">make_depth_first_iterator</span><span class="special">(</span><span class="identifier">NodePointer</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">node</span><span class="special">);</span>
+
+
+    <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">NodePointer</span><span class="special">></span>
+    <span class="identifier">depth_first_iterator</span><span class="special"><</span><span class="identifier">NodePointer</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">true_</span><span class="special">></span>
+        <span class="identifier">make_depth_first_descendant_iterator</span><span class="special">(</span><span class="identifier">NodePointer</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">node</span><span class="special">);</span>
+
+
+    <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">NodePointer</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">BinaryFunction</span><span class="special">></span>
+    <span class="keyword">void</span> <span class="identifier">depth_first_iterate</span><span class="special">(</span><span class="identifier">NodePointer</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">node</span><span class="special">,</span> <span class="identifier">BinaryFunction</span> <span class="identifier">function</span><span class="special">);</span>
+
+
+    <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">NodePointer</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">BinaryFunction</span><span class="special">></span>
+    <span class="keyword">void</span>
+        <span class="identifier">depth_first_iterate_descendants</span><span class="special">(</span>
+            <span class="identifier">NodePointer</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">node</span>
+          <span class="special">,</span> <span class="identifier">BinaryFunction</span> <span class="identifier">function</span>
+        <span class="special">);</span>
+
+<span class="special">}}</span>  <span class="comment">// namespace boost::tree_node
+</span></pre>
+<p>
+        </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.depth_first_iterator.description"></a><a class="link" href="depth_first_iterator.html#tree_node.reference.depth_first_iterator.description" title="Description">Description</a>
+</h4></div></div></div>
+<p>
+          This iterator traverses the specified root node and all its descendants
+          in depth-first fashion, e.g. given the following tree representation:
+        </p>
+<p>
+          
+</p>
+<pre class="programlisting">      <span class="identifier">A</span>
+      <span class="special">|</span>
+  <span class="identifier">C</span><span class="special">---+---</span><span class="identifier">B</span>
+  <span class="special">|</span>       <span class="special">|</span>
+<span class="special">+-+-+</span>   <span class="special">+-+-+</span>
+<span class="special">|</span>   <span class="special">|</span>   <span class="special">|</span>   <span class="special">|</span>
+<span class="identifier">D</span>   <span class="identifier">E</span>   <span class="identifier">F</span>   <span class="identifier">G</span>
+</pre>
+<p>
+        </p>
+<p>
+          If this iterator is a <a class="link" href="../concepts/full_tree_node_iterator.html" title="Full Tree Node Iterator"><span class="bold"><strong>Full Tree Node Iterator</strong></span></a>, then it will traverse
+          the tree nodes in the following order:
+        </p>
+<p>
+          
+</p>
+<pre class="programlisting"><span class="identifier">A</span>  <span class="identifier">pre_order_traversal</span>
+<span class="identifier">C</span>  <span class="identifier">pre_order_traversal</span>
+<span class="identifier">D</span>  <span class="identifier">pre_order_traversal</span>
+<span class="identifier">D</span>  <span class="identifier">post_order_traversal</span>
+<span class="identifier">E</span>  <span class="identifier">pre_order_traversal</span>
+<span class="identifier">E</span>  <span class="identifier">post_order_traversal</span>
+<span class="identifier">C</span>  <span class="identifier">post_order_traversal</span>
+<span class="identifier">B</span>  <span class="identifier">pre_order_traversal</span>
+<span class="identifier">F</span>  <span class="identifier">pre_order_traversal</span>
+<span class="identifier">F</span>  <span class="identifier">post_order_traversal</span>
+<span class="identifier">G</span>  <span class="identifier">pre_order_traversal</span>
+<span class="identifier">G</span>  <span class="identifier">post_order_traversal</span>
+<span class="identifier">B</span>  <span class="identifier">post_order_traversal</span>
+<span class="identifier">A</span>  <span class="identifier">post_order_traversal</span>
+</pre>
+<p>
+        </p>
+<p>
+          If this iterator is a <a class="link" href="../concepts/tree_node_desc_iterator.html" title="Tree Node Descendant Iterator"><span class="bold"><strong>Tree Node Descendant Iterator</strong></span></a>, then it will
+          traverse the tree nodes in the following order:
+        </p>
+<p>
+          
+</p>
+<pre class="programlisting"><span class="identifier">C</span>  <span class="identifier">pre_order_traversal</span>
+<span class="identifier">D</span>  <span class="identifier">pre_order_traversal</span>
+<span class="identifier">D</span>  <span class="identifier">post_order_traversal</span>
+<span class="identifier">E</span>  <span class="identifier">pre_order_traversal</span>
+<span class="identifier">E</span>  <span class="identifier">post_order_traversal</span>
+<span class="identifier">C</span>  <span class="identifier">post_order_traversal</span>
+<span class="identifier">B</span>  <span class="identifier">pre_order_traversal</span>
+<span class="identifier">F</span>  <span class="identifier">pre_order_traversal</span>
+<span class="identifier">F</span>  <span class="identifier">post_order_traversal</span>
+<span class="identifier">G</span>  <span class="identifier">pre_order_traversal</span>
+<span class="identifier">G</span>  <span class="identifier">post_order_traversal</span>
+<span class="identifier">B</span>  <span class="identifier">post_order_traversal</span>
+</pre>
+<p>
+        </p>
+<p>
+          The traversal state conversion operator of this iterator will yield each
+          value in the column on the right at the appropriate iteration.
+        </p>
+<p>
+          This iterator is ideal for algorithms that need to perform both preprocessing
+          and postprocessing of a tree node, e.g. the copy constructors of the <a class="link" href="raw_node.html" title="raw_node"><code class="computeroutput"><span class="identifier">raw_node</span></code></a>
+          and <a class="link" href="raw_associative_node.html" title="raw_associative_node"><code class="computeroutput"><span class="identifier">raw_associative_node</span></code></a> implementations.
+        </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.depth_first_iterator.definition"></a><a class="link" href="depth_first_iterator.html#tree_node.reference.depth_first_iterator.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/tree_node/depth_first_iterator.hpp<span class="special">></span>
+</pre>
+<p>
+        </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.depth_first_iterator.tpl_param"></a><a class="link" href="depth_first_iterator.html#tree_node.reference.depth_first_iterator.tpl_param" title="Template Parameters">Template
+        Parameters</a>
+</h4></div></div></div>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+                  <p>
+                    Parameter
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Description
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Requirements
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Default
+                  </p>
+                </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">NodePointer</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    The type of a pointer to a tree node.
+                  </p>
+                </td>
+<td>
+                  <p>
+                    It must model the Trivial Iterator concept, and
+                    its value type must model the <a class="link" href="../concepts/tree_node.html" title="Tree Node"><span class="bold"><strong>Tree Node</strong></span></a> concept.
+                  </p>
+                </td>
+<td>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">MimicsChildIterator</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    The type that determines whether this <code class="computeroutput"><span class="identifier">depth_first_iterator</span></code>
+                    will iterate only through the descendants of a node or will also
+                    include the node in its traversal.
+                  </p>
+                </td>
+<td>
+                  <p>
+                    It must model the Boolean Integral Constant concept.
+                  </p>
+                </td>
+<td>
+                </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.depth_first_iterator.model_of"></a><a class="link" href="depth_first_iterator.html#tree_node.reference.depth_first_iterator.model_of" title="Model of">Model
+        of</a>
+</h4></div></div></div>
+<pre class="programlisting"><span class="special">*</span> <a class="link" href="../concepts/full_tree_node_iterator.html" title="Full Tree Node Iterator"><span class="bold"><strong>Full Tree Node Iterator</strong></span></a> <span class="keyword">if</span> <span class="error">`</span><span class="identifier">MimicsChildIterator</span><span class="special">::</span><span class="identifier">value</span><span class="error">`</span> <span class="identifier">is</span> <span class="error">`</span><span class="keyword">false</span><span class="error">`</span>
+<span class="special">*</span> <a class="link" href="../concepts/tree_node_desc_iterator.html" title="Tree Node Descendant Iterator"><span class="bold"><strong>Tree Node Descendant Iterator</strong></span></a> <span class="keyword">if</span> <span class="error">`</span><span class="identifier">MimicsChildIterator</span><span class="special">::</span><span class="identifier">value</span><span class="error">`</span> <span class="identifier">is</span> <span class="error">`</span><span class="keyword">true</span><span class="error">`</span>
+<span class="special">*</span> Default Constructible
+<span class="special">*</span> Copy Constructible
+<span class="special">*</span> Assignable
+</pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.depth_first_iterator.public_bases"></a><a class="link" href="depth_first_iterator.html#tree_node.reference.depth_first_iterator.public_bases" title="Public Base Classes">Public
+        Base Classes</a>
+</h4></div></div></div>
+<p>
+          None.
+        </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.depth_first_iterator.members"></a><a class="link" href="depth_first_iterator.html#tree_node.reference.depth_first_iterator.members" title="Members">Members</a>
+</h4></div></div></div>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+                  <p>
+                    Name
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Expression
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Description
+                  </p>
+                </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+                  <p>
+                    Value type
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">value_type</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Defined in the <a class="link" href="../concepts/tree_node_iterator.html" title="Tree Node Iterator"><span class="bold"><strong>Tree Node Iterator</strong></span></a> concept.
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Reference type
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">reference</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Defined in the Forward Iterator concept.
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Pointer type
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">pointer</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Defined in the Forward Iterator concept.
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Distance type
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">distance</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Defined in the Forward Iterator concept.
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Iterator category
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">iterator_category</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Defined in the Forward Iterator concept.
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Default constructor
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">depth_first_iterator</span><span class="special">();</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Defined in the Default Constructible concept.
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Constructor from im/mutable node
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">depth_first_iterator</span><span class="special">(</span><span class="identifier">NodePointer</span>
+                    <span class="keyword">const</span><span class="special">&);</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Defined in the <a class="link" href="../concepts/tree_node_iterator.html" title="Tree Node Iterator"><span class="bold"><strong>Tree Node Iterator</strong></span></a> concept.
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Conversion constructor
+                  </p>
+                </td>
+<td>
+                  <p>
+                    
+</p>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">NP</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">MCI</span><span class="special">></span>
+<span class="identifier">depth_first_iterator</span><span class="special">(</span><span class="identifier">depth_first_iterator</span><span class="special"><</span><span class="identifier">NP</span><span class="special">,</span><span class="identifier">MCI</span><span class="special">></span> <span class="keyword">const</span><span class="special">&);</span>
+</pre>
+<p>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Constructs a <code class="computeroutput"><span class="identifier">depth_first_iterator</span></code>
+                    object that will point to the same element that the specified
+                    iterator points to.
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Copy constructor
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">depth_first_iterator</span><span class="special">(</span><span class="identifier">depth_first_iterator</span>
+                    <span class="keyword">const</span><span class="special">&);</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Defined in the Copy Constructible concept.
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Assignment operator
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">depth_first_iterator</span><span class="special">&</span> <span class="keyword">operator</span><span class="special">=(</span><span class="identifier">depth_first_iterator</span>
+                    <span class="keyword">const</span><span class="special">&);</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Defined in the Assignable concept.
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Dereference operator
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">reference</span> <span class="keyword">operator</span><span class="special">*()</span> <span class="keyword">const</span><span class="special">;</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Defined in the Forward Iterator concept.
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Indirection operator
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">pointer</span> <span class="keyword">operator</span><span class="special">->()</span> <span class="keyword">const</span><span class="special">;</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Defined in the Forward Iterator concept.
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Pre-increment operator
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">depth_first_iterator</span><span class="special">&</span> <span class="keyword">operator</span><span class="special">++();</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Defined in the Forward Iterator concept.
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Post-increment operator
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">depth_first_iterator</span>
+                    <span class="keyword">operator</span><span class="special">++(</span><span class="keyword">int</span><span class="special">);</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Defined in the Forward Iterator concept.
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Traversal state conversion operator
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">operator</span> <a class="link" href="traversal_state.html" title="traversal_state">traversal_state</a><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Returns <code class="computeroutput"><span class="identifier">pre_order_traversal</span></code>
+                    if this iterator has not yet examined the children of the current
+                    node, <code class="computeroutput"><span class="identifier">post_order_traversal</span></code>
+                    if this iterator has examined all of the children of the current
+                    node, or <code class="computeroutput"><span class="identifier">no_traversal</span></code>
+                    if this iterator is not dereferenceable.
+                  </p>
+                </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.depth_first_iterator.non_members"></a><a class="link" href="depth_first_iterator.html#tree_node.reference.depth_first_iterator.non_members" title="Non-members">Non-members</a>
+</h4></div></div></div>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+                  <p>
+                    Name
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Expression
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Description
+                  </p>
+                </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+                  <p>
+                    Iterator creation
+                  </p>
+                </td>
+<td>
+                  <p>
+                    
+</p>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">NodePointer</span><span class="special">></span>
+<span class="identifier">depth_first_iterator</span><span class="special"><</span><span class="identifier">NodePointer</span><span class="special">,</span>boost::mpl::false_<span class="special">></span>
+    <span class="identifier">make_depth_first_iterator</span><span class="special">(</span><span class="identifier">NodePointer</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">node</span><span class="special">);</span>
+</pre>
+<p>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Constructs and returns a <code class="computeroutput"><span class="identifier">depth_first_iterator</span></code>
+                    that will iterate through the specified node and its descendants.
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Descendant iterator creation
+                  </p>
+                </td>
+<td>
+                  <p>
+                    
+</p>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">NodePointer</span><span class="special">></span>
+<span class="identifier">depth_first_iterator</span><span class="special"><</span><span class="identifier">NodePointer</span><span class="special">,</span>boost::mpl::true_<span class="special">></span>
+    <span class="identifier">make_depth_first_descendant_iterator</span><span class="special">(</span><span class="identifier">NodePointer</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">node</span><span class="special">);</span>
+</pre>
+<p>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Constructs and returns a <code class="computeroutput"><span class="identifier">depth_first_iterator</span></code>
+                    that will iterate through the descendants of the specified node.
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Iteration
+                  </p>
+                </td>
+<td>
+                  <p>
+                    
+</p>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">NodePointer</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">UnaryFunction</span><span class="special">></span>
+<span class="keyword">void</span>
+    <span class="identifier">depth_first_iterate</span><span class="special">(</span>
+        <span class="identifier">NodePointer</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">node</span>
+      <span class="special">,</span> <span class="identifier">UnaryFunction</span> <span class="identifier">function</span>
+    <span class="special">);</span>
+</pre>
+<p>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Iterates through the specified node and its descendants in depth-first
+                    fashion, passing each node pointer dereferenced to the specified
+                    Unary Function object.
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Descendant iteration
+                  </p>
+                </td>
+<td>
+                  <p>
+                    
+</p>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">NodePointer</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">UnaryFunction</span><span class="special">></span>
+<span class="keyword">void</span>
+    <span class="identifier">depth_first_iterate_descendants</span><span class="special">(</span>
+        <span class="identifier">NodePointer</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">node</span>
+      <span class="special">,</span> <span class="identifier">UnaryFunction</span> <span class="identifier">function</span>
+    <span class="special">);</span>
+</pre>
+<p>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Iterates through the descendants of the specified node in depth-first
+                    fashion, passing each element dereferenced to the specified
+                    Unary Function object.
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Equality
+                  </p>
+                </td>
+<td>
+                  <p>
+                    
+</p>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">NP1</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">NP2</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">MCI1</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">MCI2</span><span class="special">></span>
+<span class="keyword">typename</span> enable_if<span class="special"><</span>boost::mpl::equal_to<span class="special"><</span><span class="identifier">MCI1</span><span class="special">,</span><span class="identifier">MCI2</span><span class="special">>,</span><span class="keyword">bool</span><span class="special">>::</span><span class="identifier">type</span>
+    <span class="keyword">operator</span><span class="special">==(</span>
+        <span class="identifier">depth_first_iterator</span><span class="special"><</span><span class="identifier">NP1</span><span class="special">,</span><span class="identifier">MCI1</span><span class="special">></span> <span class="keyword">const</span><span class="special">&</span>
+      <span class="special">,</span> <span class="identifier">depth_first_iterator</span><span class="special"><</span><span class="identifier">NP2</span><span class="special">,</span><span class="identifier">MCI2</span><span class="special">></span> <span class="keyword">const</span><span class="special">&</span>
+    <span class="special">);</span>
+</pre>
+<p>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Defined by the Input Iterator concept.
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Inequality
+                  </p>
+                </td>
+<td>
+                  <p>
+                    
+</p>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">NP1</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">NP2</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">MCI1</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">MCI2</span><span class="special">></span>
+<span class="keyword">typename</span> enable_if<span class="special"><</span>boost::mpl::equal_to<span class="special"><</span><span class="identifier">MCI1</span><span class="special">,</span><span class="identifier">MCI2</span><span class="special">>,</span><span class="keyword">bool</span><span class="special">>::</span><span class="identifier">type</span>
+    <span class="keyword">operator</span><span class="special">!=(</span>
+        <span class="identifier">depth_first_iterator</span><span class="special"><</span><span class="identifier">NP1</span><span class="special">,</span><span class="identifier">MCI1</span><span class="special">></span> <span class="keyword">const</span><span class="special">&</span>
+      <span class="special">,</span> <span class="identifier">depth_first_iterator</span><span class="special"><</span><span class="identifier">NP2</span><span class="special">,</span><span class="identifier">MCI2</span><span class="special">></span> <span class="keyword">const</span><span class="special">&</span>
+    <span class="special">);</span>
+</pre>
+<p>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Defined by the Input Iterator concept.
+                  </p>
+                </td>
+</tr>
+</tbody>
+</table></div>
+</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 © 2011 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="post_order_iterator.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="traversal_state.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/post_order_iterator.html
==============================================================================
--- (empty file)
+++ sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/post_order_iterator.html	2011-09-23 22:11:39 EDT (Fri, 23 Sep 2011)
@@ -0,0 +1,746 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>post_order_iterator</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. tree_node 0.1">
+<link rel="up" href="../reference.html" title="Reference">
+<link rel="prev" href="pre_order_iterator.html" title="pre_order_iterator">
+<link rel="next" href="depth_first_iterator.html" title="depth_first_iterator">
+</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="pre_order_iterator.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="depth_first_iterator.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="tree_node.reference.post_order_iterator"></a><a class="link" href="post_order_iterator.html" title="post_order_iterator"><code class="computeroutput"><span class="identifier">post_order_iterator</span></code></a>
+</h3></div></div></div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.post_order_iterator.synopsis"></a><a class="link" href="post_order_iterator.html#tree_node.reference.post_order_iterator.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">namespace</span> <span class="identifier">tree_node</span> <span class="special">{</span>
+
+    <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">NodePointer</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">MimicsChildIterator</span><span class="special">></span>
+    <span class="keyword">class</span> <span class="identifier">post_order_iterator</span>
+    <span class="special">{</span>
+
+     <span class="keyword">public</span><span class="special">:</span>
+        <span class="keyword">typedef</span> <span class="comment">// implementation_defined
+</span>                <span class="identifier">value_type</span><span class="special">;</span>
+        <span class="keyword">typedef</span> <span class="identifier">value_type</span> <span class="keyword">const</span><span class="special">&</span>
+                <span class="identifier">reference</span><span class="special">;</span>
+        <span class="keyword">typedef</span> <span class="comment">// implementation_defined
+</span>                <span class="identifier">pointer</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">ptrdiff_t</span>
+                <span class="identifier">distance_type</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">forward_iterator_tag</span>
+                <span class="identifier">iterator_category</span><span class="special">;</span>
+
+        <span class="identifier">post_order_iterator</span><span class="special">();</span>
+
+        <span class="keyword">explicit</span> <span class="identifier">post_order_iterator</span><span class="special">(</span><span class="identifier">NodePointer</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">node</span><span class="special">);</span>
+
+        <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">NP</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">MCI</span><span class="special">></span>
+        <span class="identifier">post_order_iterator</span><span class="special">(</span>
+            <span class="identifier">post_order_iterator</span><span class="special"><</span><span class="identifier">NP</span><span class="special">,</span><span class="identifier">MCI</span><span class="special">></span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">other</span>
+        <span class="special">);</span>
+
+        <span class="identifier">reference</span> <span class="keyword">operator</span><span class="special">*()</span> <span class="keyword">const</span><span class="special">;</span>
+
+        <span class="identifier">pointer</span> <span class="keyword">operator</span><span class="special">->()</span> <span class="keyword">const</span><span class="special">;</span>
+
+        <span class="identifier">post_order_iterator</span><span class="special">&</span> <span class="keyword">operator</span><span class="special">++();</span>
+
+        <span class="identifier">post_order_iterator</span> <span class="keyword">operator</span><span class="special">++(</span><span class="keyword">int</span><span class="special">);</span>
+
+        <span class="keyword">operator</span> <span class="identifier">traversal_state</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+
+    <span class="special">};</span>
+
+<span class="special">}}</span>  <span class="comment">// namespace boost::tree_node
+</span></pre>
+<p>
+        </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.post_order_iterator.description"></a><a class="link" href="post_order_iterator.html#tree_node.reference.post_order_iterator.description" title="Description">Description</a>
+</h4></div></div></div>
+<p>
+          This iterator traverses the specified root node and all its descendants
+          in post-order fashion, e.g. given the following tree representation:
+        </p>
+<p>
+          
+</p>
+<pre class="programlisting">      <span class="identifier">A</span>
+      <span class="special">|</span>
+  <span class="identifier">C</span><span class="special">---+---</span><span class="identifier">B</span>
+  <span class="special">|</span>       <span class="special">|</span>
+<span class="special">+-+-+</span>   <span class="special">+-+-+</span>
+<span class="special">|</span>   <span class="special">|</span>   <span class="special">|</span>   <span class="special">|</span>
+<span class="identifier">D</span>   <span class="identifier">E</span>   <span class="identifier">F</span>   <span class="identifier">G</span>
+</pre>
+<p>
+        </p>
+<p>
+          If this iterator is a <a class="link" href="../concepts/full_tree_node_iterator.html" title="Full Tree Node Iterator"><span class="bold"><strong>Full Tree Node Iterator</strong></span></a>, then it will traverse
+          the tree nodes in the following order:
+        </p>
+<p>
+          
+</p>
+<pre class="programlisting"><span class="identifier">D</span> <span class="identifier">E</span> <span class="identifier">C</span> <span class="identifier">F</span> <span class="identifier">G</span> <span class="identifier">B</span> <span class="identifier">A</span>
+</pre>
+<p>
+        </p>
+<p>
+          If this iterator is a <a class="link" href="../concepts/tree_node_desc_iterator.html" title="Tree Node Descendant Iterator"><span class="bold"><strong>Tree Node Descendant Iterator</strong></span></a>, then it will
+          traverse the tree nodes in the following order:
+        </p>
+<p>
+          
+</p>
+<pre class="programlisting"><span class="identifier">D</span> <span class="identifier">E</span> <span class="identifier">C</span> <span class="identifier">F</span> <span class="identifier">G</span> <span class="identifier">B</span>
+</pre>
+<p>
+        </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.post_order_iterator.definition"></a><a class="link" href="post_order_iterator.html#tree_node.reference.post_order_iterator.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/tree_node/post_order_iterator.hpp<span class="special">></span>
+</pre>
+<p>
+        </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.post_order_iterator.tpl_param"></a><a class="link" href="post_order_iterator.html#tree_node.reference.post_order_iterator.tpl_param" title="Template Parameters">Template
+        Parameters</a>
+</h4></div></div></div>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+                  <p>
+                    Parameter
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Description
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Requirements
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Default
+                  </p>
+                </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">NodePointer</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    The type of a pointer to a tree node.
+                  </p>
+                </td>
+<td>
+                  <p>
+                    It must model the Trivial Iterator concept, and
+                    its value type must model the <a class="link" href="../concepts/tree_node.html" title="Tree Node"><span class="bold"><strong>Tree Node</strong></span></a> concept.
+                  </p>
+                </td>
+<td>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">MimicsChildIterator</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    The type that determines whether this <code class="computeroutput"><span class="identifier">post_order_iterator</span></code>
+                    will iterate only through the descendants of a node or will also
+                    include the node in its traversal.
+                  </p>
+                </td>
+<td>
+                  <p>
+                    It must model the Boolean Integral Constant concept.
+                  </p>
+                </td>
+<td>
+                </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.post_order_iterator.model_of"></a><a class="link" href="post_order_iterator.html#tree_node.reference.post_order_iterator.model_of" title="Model of">Model
+        of</a>
+</h4></div></div></div>
+<pre class="programlisting"><span class="special">*</span> <a class="link" href="../concepts/full_tree_node_iterator.html" title="Full Tree Node Iterator"><span class="bold"><strong>Full Tree Node Iterator</strong></span></a> <span class="keyword">if</span> <span class="error">`</span><span class="identifier">MimicsChildIterator</span><span class="special">::</span><span class="identifier">value</span><span class="error">`</span> <span class="identifier">is</span> <span class="error">`</span><span class="keyword">false</span><span class="error">`</span>
+<span class="special">*</span> <a class="link" href="../concepts/tree_node_desc_iterator.html" title="Tree Node Descendant Iterator"><span class="bold"><strong>Tree Node Descendant Iterator</strong></span></a> <span class="keyword">if</span> <span class="error">`</span><span class="identifier">MimicsChildIterator</span><span class="special">::</span><span class="identifier">value</span><span class="error">`</span> <span class="identifier">is</span> <span class="error">`</span><span class="keyword">true</span><span class="error">`</span>
+<span class="special">*</span> Default Constructible
+<span class="special">*</span> Copy Constructible
+<span class="special">*</span> Assignable
+</pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.post_order_iterator.public_bases"></a><a class="link" href="post_order_iterator.html#tree_node.reference.post_order_iterator.public_bases" title="Public Base Classes">Public
+        Base Classes</a>
+</h4></div></div></div>
+<p>
+          None.
+        </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.post_order_iterator.members"></a><a class="link" href="post_order_iterator.html#tree_node.reference.post_order_iterator.members" title="Members">Members</a>
+</h4></div></div></div>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+                  <p>
+                    Name
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Expression
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Where defined
+                  </p>
+                </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+                  <p>
+                    Value type
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">value_type</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <a class="link" href="../concepts/tree_node_iterator.html" title="Tree Node Iterator"><span class="bold"><strong>Tree Node Iterator</strong></span></a>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Reference type
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">reference</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Forward Iterator
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Pointer type
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">pointer</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Forward Iterator
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Distance type
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">distance</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Forward Iterator
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Iterator category
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">iterator_category</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Forward Iterator
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Default constructor
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">post_order_iterator</span><span class="special">();</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Default Constructible
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Constructor from im/mutable node
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">post_order_iterator</span><span class="special">(</span><span class="identifier">NodePointer</span>
+                    <span class="keyword">const</span><span class="special">&);</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <a class="link" href="../concepts/tree_node_iterator.html" title="Tree Node Iterator"><span class="bold"><strong>Tree Node Iterator</strong></span></a>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Conversion constructor
+                  </p>
+                </td>
+<td>
+                  <p>
+                    
+</p>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">NP</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">MCI</span><span class="special">></span>
+<span class="identifier">post_order_iterator</span><span class="special">(</span><span class="identifier">post_order_iterator</span><span class="special"><</span><span class="identifier">NP</span><span class="special">,</span><span class="identifier">MCI</span><span class="special">></span> <span class="keyword">const</span><span class="special">&);</span>
+</pre>
+<p>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">post_order_iterator</span></code>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Copy constructor
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">post_order_iterator</span><span class="special">(</span><span class="identifier">post_order_iterator</span>
+                    <span class="keyword">const</span><span class="special">&);</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Copy Constructible
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Assignment operator
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">post_order_iterator</span><span class="special">&</span> <span class="keyword">operator</span><span class="special">=(</span><span class="identifier">post_order_iterator</span>
+                    <span class="keyword">const</span><span class="special">&);</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Assignable
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Dereference operator
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">reference</span> <span class="keyword">operator</span><span class="special">*()</span> <span class="keyword">const</span><span class="special">;</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Forward Iterator
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Indirection operator
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">pointer</span> <span class="keyword">operator</span><span class="special">->()</span> <span class="keyword">const</span><span class="special">;</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Forward Iterator
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Pre-increment operator
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">post_order_iterator</span><span class="special">&</span> <span class="keyword">operator</span><span class="special">++();</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Forward Iterator
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Post-increment operator
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">post_order_iterator</span>
+                    <span class="keyword">operator</span><span class="special">++(</span><span class="keyword">int</span><span class="special">);</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Forward Iterator
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Traversal state conversion operator
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">operator</span> <a class="link" href="traversal_state.html" title="traversal_state">traversal_state</a><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <a class="link" href="../concepts/tree_node_iterator.html" title="Tree Node Iterator"><span class="bold"><strong>Tree Node Iterator</strong></span></a>
+                  </p>
+                </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.post_order_iterator.non_members"></a><a class="link" href="post_order_iterator.html#tree_node.reference.post_order_iterator.non_members" title="Non-members">Non-members</a>
+</h4></div></div></div>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+                  <p>
+                    Name
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Expression
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Description
+                  </p>
+                </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+                  <p>
+                    Iterator creation
+                  </p>
+                </td>
+<td>
+                  <p>
+                    
+</p>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">tree_node</span> <span class="special">{</span>
+
+    <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">NodePointer</span><span class="special">></span>
+    <span class="identifier">post_order_iterator</span><span class="special"><</span><span class="identifier">NodePointer</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="identifier">make_post_order_iterator</span><span class="special">(</span><span class="identifier">NodePointer</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">node</span><span class="special">);</span>
+
+<span class="special">}}</span>  <span class="comment">// namespace boost::tree_node
+</span></pre>
+<p>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Constructs and returns a <code class="computeroutput"><span class="identifier">post_order_iterator</span></code>
+                    that will iterate through the specified node and its descendants.
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Descendant iterator creation
+                  </p>
+                </td>
+<td>
+                  <p>
+                    
+</p>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">tree_node</span> <span class="special">{</span>
+
+    <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">NodePointer</span><span class="special">></span>
+    <span class="identifier">post_order_iterator</span><span class="special"><</span><span class="identifier">NodePointer</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">true_</span><span class="special">></span>
+        <span class="identifier">make_post_order_descendant_iterator</span><span class="special">(</span><span class="identifier">NodePointer</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">node</span><span class="special">);</span>
+
+<span class="special">}}</span>  <span class="comment">// namespace boost::tree_node
+</span></pre>
+<p>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Constructs and returns a <code class="computeroutput"><span class="identifier">post_order_iterator</span></code>
+                    that will iterate through the descendants of the specified node.
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Iteration
+                  </p>
+                </td>
+<td>
+                  <p>
+                    
+</p>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">tree_node</span> <span class="special">{</span>
+
+    <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">NodePointer</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">UnaryFunction</span><span class="special">></span>
+    <span class="keyword">void</span> <span class="identifier">post_order_iterate</span><span class="special">(</span><span class="identifier">NodePointer</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">node</span><span class="special">,</span> <span class="identifier">UnaryFunction</span> <span class="identifier">function</span><span class="special">);</span>
+
+<span class="special">}}</span>  <span class="comment">// namespace boost::tree_node
+</span></pre>
+<p>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Iterates through the specified node and its descendants in post-order
+                    fashion, passing each node pointer dereferenced to the specified
+                    Unary Function object.
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Descendant iteration
+                  </p>
+                </td>
+<td>
+                  <p>
+                    
+</p>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">tree_node</span> <span class="special">{</span>
+
+    <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">NodePointer</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">UnaryFunction</span><span class="special">></span>
+    <span class="keyword">void</span>
+        <span class="identifier">post_order_iterate_descendants</span><span class="special">(</span>
+            <span class="identifier">NodePointer</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">node</span>
+          <span class="special">,</span> <span class="identifier">UnaryFunction</span> <span class="identifier">function</span>
+        <span class="special">);</span>
+
+<span class="special">}}</span>  <span class="comment">// namespace boost::tree_node
+</span></pre>
+<p>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Iterates through the descendants of the specified node in post-order
+                    fashion, passing each element dereferenced to the specified
+                    Unary Function object.
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Equality
+                  </p>
+                </td>
+<td>
+                  <p>
+                    
+</p>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">tree_node</span> <span class="special">{</span>
+
+    <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">NP1</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">NP2</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">MCI1</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">MCI2</span><span class="special">></span>
+    <span class="keyword">typename</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">enable_if</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">equal_to</span><span class="special"><</span><span class="identifier">MCI1</span><span class="special">,</span><span class="identifier">MCI2</span><span class="special">>,</span><span class="keyword">bool</span><span class="special">>::</span><span class="identifier">type</span>
+        <span class="keyword">operator</span><span class="special">==(</span>
+            <span class="identifier">post_order_iterator</span><span class="special"><</span><span class="identifier">NP1</span><span class="special">,</span><span class="identifier">MCI1</span><span class="special">></span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">lhs</span>
+          <span class="special">,</span> <span class="identifier">post_order_iterator</span><span class="special"><</span><span class="identifier">NP2</span><span class="special">,</span><span class="identifier">MCI2</span><span class="special">></span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">rhs</span>
+        <span class="special">);</span>
+
+<span class="special">}}</span>  <span class="comment">// namespace boost::tree_node
+</span></pre>
+<p>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Defined by the Input Iterator concept.
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Inequality
+                  </p>
+                </td>
+<td>
+                  <p>
+                    
+</p>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">tree_node</span> <span class="special">{</span>
+
+    <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">NP1</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">NP2</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">MCI1</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">MCI2</span><span class="special">></span>
+    <span class="keyword">typename</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">enable_if</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">equal_to</span><span class="special"><</span><span class="identifier">MCI1</span><span class="special">,</span><span class="identifier">MCI2</span><span class="special">>,</span><span class="keyword">bool</span><span class="special">>::</span><span class="identifier">type</span>
+        <span class="keyword">operator</span><span class="special">!=(</span>
+            <span class="identifier">post_order_iterator</span><span class="special"><</span><span class="identifier">NP1</span><span class="special">,</span><span class="identifier">MCI1</span><span class="special">></span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">lhs</span>
+          <span class="special">,</span> <span class="identifier">post_order_iterator</span><span class="special"><</span><span class="identifier">NP2</span><span class="special">,</span><span class="identifier">MCI2</span><span class="special">></span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">rhs</span>
+        <span class="special">);</span>
+
+<span class="special">}}</span>  <span class="comment">// namespace boost::tree_node
+</span></pre>
+<p>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Defined by the Input Iterator concept.
+                  </p>
+                </td>
+</tr>
+</tbody>
+</table></div>
+</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 © 2011 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="pre_order_iterator.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="depth_first_iterator.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/pre_order_iterator.html
==============================================================================
--- (empty file)
+++ sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/pre_order_iterator.html	2011-09-23 22:11:39 EDT (Fri, 23 Sep 2011)
@@ -0,0 +1,746 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>pre_order_iterator</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. tree_node 0.1">
+<link rel="up" href="../reference.html" title="Reference">
+<link rel="prev" href="breadth_first_iterator.html" title="breadth_first_iterator">
+<link rel="next" href="post_order_iterator.html" title="post_order_iterator">
+</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="breadth_first_iterator.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="post_order_iterator.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="tree_node.reference.pre_order_iterator"></a><a class="link" href="pre_order_iterator.html" title="pre_order_iterator"><code class="computeroutput"><span class="identifier">pre_order_iterator</span></code></a>
+</h3></div></div></div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.pre_order_iterator.synopsis"></a><a class="link" href="pre_order_iterator.html#tree_node.reference.pre_order_iterator.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">namespace</span> <span class="identifier">tree_node</span> <span class="special">{</span>
+
+    <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">NodePointer</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">MimicsChildIterator</span><span class="special">></span>
+    <span class="keyword">class</span> <span class="identifier">pre_order_iterator</span>
+    <span class="special">{</span>
+
+     <span class="keyword">public</span><span class="special">:</span>
+        <span class="keyword">typedef</span> <span class="comment">// implementation_defined
+</span>                <span class="identifier">value_type</span><span class="special">;</span>
+        <span class="keyword">typedef</span> <span class="identifier">value_type</span> <span class="keyword">const</span><span class="special">&</span>
+                <span class="identifier">reference</span><span class="special">;</span>
+        <span class="keyword">typedef</span> <span class="comment">// implementation_defined
+</span>                <span class="identifier">pointer</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">ptrdiff_t</span>
+                <span class="identifier">distance_type</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">forward_iterator_tag</span>
+                <span class="identifier">iterator_category</span><span class="special">;</span>
+
+        <span class="identifier">pre_order_iterator</span><span class="special">();</span>
+
+        <span class="keyword">explicit</span> <span class="identifier">pre_order_iterator</span><span class="special">(</span><span class="identifier">NodePointer</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">node</span><span class="special">);</span>
+
+        <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">NP</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">MCI</span><span class="special">></span>
+        <span class="identifier">pre_order_iterator</span><span class="special">(</span>
+            <span class="identifier">pre_order_iterator</span><span class="special"><</span><span class="identifier">NP</span><span class="special">,</span><span class="identifier">MCI</span><span class="special">></span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">other</span>
+        <span class="special">);</span>
+
+        <span class="identifier">reference</span> <span class="keyword">operator</span><span class="special">*()</span> <span class="keyword">const</span><span class="special">;</span>
+
+        <span class="identifier">pointer</span> <span class="keyword">operator</span><span class="special">->()</span> <span class="keyword">const</span><span class="special">;</span>
+
+        <span class="identifier">pre_order_iterator</span><span class="special">&</span> <span class="keyword">operator</span><span class="special">++();</span>
+
+        <span class="identifier">pre_order_iterator</span> <span class="keyword">operator</span><span class="special">++(</span><span class="keyword">int</span><span class="special">);</span>
+
+        <span class="keyword">operator</span> <span class="identifier">traversal_state</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+
+    <span class="special">};</span>
+
+<span class="special">}}</span>  <span class="comment">// namespace boost::tree_node
+</span></pre>
+<p>
+        </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.pre_order_iterator.description"></a><a class="link" href="pre_order_iterator.html#tree_node.reference.pre_order_iterator.description" title="Description">Description</a>
+</h4></div></div></div>
+<p>
+          This iterator traverses the specified root node and all its descendants
+          in pre-order fashion, e.g. given the following tree representation:
+        </p>
+<p>
+          
+</p>
+<pre class="programlisting">      <span class="identifier">A</span>
+      <span class="special">|</span>
+  <span class="identifier">C</span><span class="special">---+---</span><span class="identifier">B</span>
+  <span class="special">|</span>       <span class="special">|</span>
+<span class="special">+-+-+</span>   <span class="special">+-+-+</span>
+<span class="special">|</span>   <span class="special">|</span>   <span class="special">|</span>   <span class="special">|</span>
+<span class="identifier">D</span>   <span class="identifier">E</span>   <span class="identifier">F</span>   <span class="identifier">G</span>
+</pre>
+<p>
+        </p>
+<p>
+          If this iterator is a <a class="link" href="../concepts/full_tree_node_iterator.html" title="Full Tree Node Iterator"><span class="bold"><strong>Full Tree Node Iterator</strong></span></a>, then it will traverse
+          the tree nodes in the following order:
+        </p>
+<p>
+          
+</p>
+<pre class="programlisting"><span class="identifier">A</span> <span class="identifier">C</span> <span class="identifier">D</span> <span class="identifier">E</span> <span class="identifier">B</span> <span class="identifier">F</span> <span class="identifier">G</span>
+</pre>
+<p>
+        </p>
+<p>
+          If this iterator is a <a class="link" href="../concepts/tree_node_desc_iterator.html" title="Tree Node Descendant Iterator"><span class="bold"><strong>Tree Node Descendant Iterator</strong></span></a>, then it will
+          traverse the tree nodes in the following order:
+        </p>
+<p>
+          
+</p>
+<pre class="programlisting"><span class="identifier">C</span> <span class="identifier">D</span> <span class="identifier">E</span> <span class="identifier">B</span> <span class="identifier">F</span> <span class="identifier">G</span>
+</pre>
+<p>
+        </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.pre_order_iterator.definition"></a><a class="link" href="pre_order_iterator.html#tree_node.reference.pre_order_iterator.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/tree_node/pre_order_iterator.hpp<span class="special">></span>
+</pre>
+<p>
+        </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.pre_order_iterator.tpl_param"></a><a class="link" href="pre_order_iterator.html#tree_node.reference.pre_order_iterator.tpl_param" title="Template Parameters">Template
+        Parameters</a>
+</h4></div></div></div>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+                  <p>
+                    Parameter
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Description
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Requirements
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Default
+                  </p>
+                </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">NodePointer</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    The type of a pointer to a tree node.
+                  </p>
+                </td>
+<td>
+                  <p>
+                    It must model the Trivial Iterator concept, and
+                    its value type must model the <a class="link" href="../concepts/tree_node.html" title="Tree Node"><span class="bold"><strong>Tree Node</strong></span></a> concept.
+                  </p>
+                </td>
+<td>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">MimicsChildIterator</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    The type that determines whether this <code class="computeroutput"><span class="identifier">pre_order_iterator</span></code>
+                    will iterate only through the descendants of a node or will also
+                    include the node in its traversal.
+                  </p>
+                </td>
+<td>
+                  <p>
+                    It must model the Boolean Integral Constant concept.
+                  </p>
+                </td>
+<td>
+                </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.pre_order_iterator.model_of"></a><a class="link" href="pre_order_iterator.html#tree_node.reference.pre_order_iterator.model_of" title="Model of">Model
+        of</a>
+</h4></div></div></div>
+<pre class="programlisting"><span class="special">*</span> <a class="link" href="../concepts/full_tree_node_iterator.html" title="Full Tree Node Iterator"><span class="bold"><strong>Full Tree Node Iterator</strong></span></a> <span class="keyword">if</span> <span class="error">`</span><span class="identifier">MimicsChildIterator</span><span class="special">::</span><span class="identifier">value</span><span class="error">`</span> <span class="identifier">is</span> <span class="error">`</span><span class="keyword">false</span><span class="error">`</span>
+<span class="special">*</span> <a class="link" href="../concepts/tree_node_desc_iterator.html" title="Tree Node Descendant Iterator"><span class="bold"><strong>Tree Node Descendant Iterator</strong></span></a> <span class="keyword">if</span> <span class="error">`</span><span class="identifier">MimicsChildIterator</span><span class="special">::</span><span class="identifier">value</span><span class="error">`</span> <span class="identifier">is</span> <span class="error">`</span><span class="keyword">true</span><span class="error">`</span>
+<span class="special">*</span> Default Constructible
+<span class="special">*</span> Copy Constructible
+<span class="special">*</span> Assignable
+</pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.pre_order_iterator.public_bases"></a><a class="link" href="pre_order_iterator.html#tree_node.reference.pre_order_iterator.public_bases" title="Public Base Classes">Public
+        Base Classes</a>
+</h4></div></div></div>
+<p>
+          None.
+        </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.pre_order_iterator.members"></a><a class="link" href="pre_order_iterator.html#tree_node.reference.pre_order_iterator.members" title="Members">Members</a>
+</h4></div></div></div>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+                  <p>
+                    Name
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Expression
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Where defined
+                  </p>
+                </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+                  <p>
+                    Value type
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">value_type</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <a class="link" href="../concepts/tree_node_iterator.html" title="Tree Node Iterator"><span class="bold"><strong>Tree Node Iterator</strong></span></a>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Reference type
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">reference</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Forward Iterator
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Pointer type
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">pointer</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Forward Iterator
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Distance type
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">distance</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Forward Iterator
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Iterator category
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">iterator_category</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Forward Iterator
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Default constructor
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">pre_order_iterator</span><span class="special">();</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Default Constructible
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Constructor from im/mutable node
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">pre_order_iterator</span><span class="special">(</span><span class="identifier">NodePointer</span>
+                    <span class="keyword">const</span><span class="special">&);</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <a class="link" href="../concepts/tree_node_iterator.html" title="Tree Node Iterator"><span class="bold"><strong>Tree Node Iterator</strong></span></a>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Conversion constructor
+                  </p>
+                </td>
+<td>
+                  <p>
+                    
+</p>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">NP</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">MCI</span><span class="special">></span>
+<span class="identifier">pre_order_iterator</span><span class="special">(</span><span class="identifier">pre_order_iterator</span><span class="special"><</span><span class="identifier">NP</span><span class="special">,</span><span class="identifier">MCI</span><span class="special">></span> <span class="keyword">const</span><span class="special">&);</span>
+</pre>
+<p>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">pre_order_iterator</span></code>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Copy constructor
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">pre_order_iterator</span><span class="special">(</span><span class="identifier">pre_order_iterator</span>
+                    <span class="keyword">const</span><span class="special">&);</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Copy Constructible
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Assignment operator
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">pre_order_iterator</span><span class="special">&</span> <span class="keyword">operator</span><span class="special">=(</span><span class="identifier">pre_order_iterator</span>
+                    <span class="keyword">const</span><span class="special">&);</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Assignable
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Dereference operator
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">reference</span> <span class="keyword">operator</span><span class="special">*()</span> <span class="keyword">const</span><span class="special">;</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Forward Iterator
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Indirection operator
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">pointer</span> <span class="keyword">operator</span><span class="special">->()</span> <span class="keyword">const</span><span class="special">;</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Forward Iterator
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Pre-increment operator
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">pre_order_iterator</span><span class="special">&</span> <span class="keyword">operator</span><span class="special">++();</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Forward Iterator
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Post-increment operator
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">pre_order_iterator</span>
+                    <span class="keyword">operator</span><span class="special">++(</span><span class="keyword">int</span><span class="special">);</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Forward Iterator
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Traversal state conversion operator
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">operator</span> <a class="link" href="traversal_state.html" title="traversal_state">traversal_state</a><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <a class="link" href="../concepts/tree_node_iterator.html" title="Tree Node Iterator"><span class="bold"><strong>Tree Node Iterator</strong></span></a>
+                  </p>
+                </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.pre_order_iterator.non_members"></a><a class="link" href="pre_order_iterator.html#tree_node.reference.pre_order_iterator.non_members" title="Non-members">Non-members</a>
+</h4></div></div></div>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+                  <p>
+                    Name
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Expression
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Description
+                  </p>
+                </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+                  <p>
+                    Iterator creation
+                  </p>
+                </td>
+<td>
+                  <p>
+                    
+</p>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">tree_node</span> <span class="special">{</span>
+
+    <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">NodePointer</span><span class="special">></span>
+    <span class="identifier">pre_order_iterator</span><span class="special"><</span><span class="identifier">NodePointer</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="identifier">make_pre_order_iterator</span><span class="special">(</span><span class="identifier">NodePointer</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">node</span><span class="special">);</span>
+
+<span class="special">}}</span>  <span class="comment">// namespace boost::tree_node
+</span></pre>
+<p>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Constructs and returns a <code class="computeroutput"><span class="identifier">pre_order_iterator</span></code>
+                    that will iterate through the specified node and its descendants.
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Descendant iterator creation
+                  </p>
+                </td>
+<td>
+                  <p>
+                    
+</p>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">tree_node</span> <span class="special">{</span>
+
+    <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">NodePointer</span><span class="special">></span>
+    <span class="identifier">pre_order_iterator</span><span class="special"><</span><span class="identifier">NodePointer</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">true_</span><span class="special">></span>
+        <span class="identifier">make_pre_order_descendant_iterator</span><span class="special">(</span><span class="identifier">NodePointer</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">node</span><span class="special">);</span>
+
+<span class="special">}}</span>  <span class="comment">// namespace boost::tree_node
+</span></pre>
+<p>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Constructs and returns a <code class="computeroutput"><span class="identifier">pre_order_iterator</span></code>
+                    that will iterate through the descendants of the specified node.
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Iteration
+                  </p>
+                </td>
+<td>
+                  <p>
+                    
+</p>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">tree_node</span> <span class="special">{</span>
+
+    <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">NodePointer</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">UnaryFunction</span><span class="special">></span>
+    <span class="keyword">void</span> <span class="identifier">pre_order_iterate</span><span class="special">(</span><span class="identifier">NodePointer</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">node</span><span class="special">,</span> <span class="identifier">UnaryFunction</span> <span class="identifier">function</span><span class="special">);</span>
+
+<span class="special">}}</span>  <span class="comment">// namespace boost::tree_node
+</span></pre>
+<p>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Iterates through the specified node and its descendants in pre-order
+                    fashion, passing each node pointer dereferenced to the specified
+                    Unary Function object.
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Descendant iteration
+                  </p>
+                </td>
+<td>
+                  <p>
+                    
+</p>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">tree_node</span> <span class="special">{</span>
+
+    <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">NodePointer</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">UnaryFunction</span><span class="special">></span>
+    <span class="keyword">void</span>
+        <span class="identifier">pre_order_iterate_descendants</span><span class="special">(</span>
+            <span class="identifier">NodePointer</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">node</span>
+          <span class="special">,</span> <span class="identifier">UnaryFunction</span> <span class="identifier">function</span>
+        <span class="special">);</span>
+
+<span class="special">}}</span>  <span class="comment">// namespace boost::tree_node
+</span></pre>
+<p>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Iterates through the descendants of the specified node in pre-order
+                    fashion, passing each element dereferenced to the specified
+                    Unary Function object.
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Equality
+                  </p>
+                </td>
+<td>
+                  <p>
+                    
+</p>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">tree_node</span> <span class="special">{</span>
+
+    <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">NP1</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">NP2</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">MCI1</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">MCI2</span><span class="special">></span>
+    <span class="keyword">typename</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">enable_if</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">equal_to</span><span class="special"><</span><span class="identifier">MCI1</span><span class="special">,</span><span class="identifier">MCI2</span><span class="special">>,</span><span class="keyword">bool</span><span class="special">>::</span><span class="identifier">type</span>
+        <span class="keyword">operator</span><span class="special">==(</span>
+            <span class="identifier">pre_order_iterator</span><span class="special"><</span><span class="identifier">NP1</span><span class="special">,</span><span class="identifier">MCI1</span><span class="special">></span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">lhs</span>
+          <span class="special">,</span> <span class="identifier">pre_order_iterator</span><span class="special"><</span><span class="identifier">NP2</span><span class="special">,</span><span class="identifier">MCI2</span><span class="special">></span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">rhs</span>
+        <span class="special">);</span>
+
+<span class="special">}}</span>  <span class="comment">// namespace boost::tree_node
+</span></pre>
+<p>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Defined by the Input Iterator concept.
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Inequality
+                  </p>
+                </td>
+<td>
+                  <p>
+                    
+</p>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">namespace</span> <span class="identifier">boost</span> <span class="special">{</span> <span class="keyword">namespace</span> <span class="identifier">tree_node</span> <span class="special">{</span>
+
+    <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">NP1</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">NP2</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">MCI1</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">MCI2</span><span class="special">></span>
+    <span class="keyword">typename</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">enable_if</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">equal_to</span><span class="special"><</span><span class="identifier">MCI1</span><span class="special">,</span><span class="identifier">MCI2</span><span class="special">>,</span><span class="keyword">bool</span><span class="special">>::</span><span class="identifier">type</span>
+        <span class="keyword">operator</span><span class="special">!=(</span>
+            <span class="identifier">pre_order_iterator</span><span class="special"><</span><span class="identifier">NP1</span><span class="special">,</span><span class="identifier">MCI1</span><span class="special">></span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">lhs</span>
+          <span class="special">,</span> <span class="identifier">pre_order_iterator</span><span class="special"><</span><span class="identifier">NP2</span><span class="special">,</span><span class="identifier">MCI2</span><span class="special">></span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">rhs</span>
+        <span class="special">);</span>
+
+<span class="special">}}</span>  <span class="comment">// namespace boost::tree_node
+</span></pre>
+<p>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Defined by the Input Iterator concept.
+                  </p>
+                </td>
+</tr>
+</tbody>
+</table></div>
+</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 © 2011 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="breadth_first_iterator.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="post_order_iterator.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/raw_associative_node.html
==============================================================================
--- (empty file)
+++ sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/raw_associative_node.html	2011-09-23 22:11:39 EDT (Fri, 23 Sep 2011)
@@ -0,0 +1,799 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>raw_associative_node</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. tree_node 0.1">
+<link rel="up" href="../reference.html" title="Reference">
+<link rel="prev" href="simple_node.html" title="simple_node">
+<link rel="next" href="simple_associative_node.html" title="simple_associative_node">
+</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="simple_node.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="simple_associative_node.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="tree_node.reference.raw_associative_node"></a><a class="link" href="raw_associative_node.html" title="raw_associative_node"><code class="computeroutput"><span class="identifier">raw_associative_node</span></code></a>
+</h3></div></div></div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.raw_associative_node.synopsis"></a><a class="link" href="raw_associative_node.html#tree_node.reference.raw_associative_node.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">namespace</span> <span class="identifier">tree_node</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">Data</span>
+      <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">AssociativeContainerSelector</span> <span class="special">=</span> <span class="identifier">mapS</span>
+    <span class="special">></span>
+    <span class="keyword">class</span> <span class="identifier">raw_associative_node</span>
+    <span class="special">{</span>
+     <span class="keyword">public</span><span class="special">:</span>
+        <span class="keyword">typedef</span> <span class="identifier">Key</span>
+                <span class="identifier">key_type</span><span class="special">;</span>
+        <span class="keyword">typedef</span> <span class="identifier">Data</span>
+                <span class="identifier">data_type</span><span class="special">;</span>
+        <span class="keyword">typedef</span> <span class="identifier">raw_associative_node</span><span class="special">*</span>
+                <span class="identifier">pointer</span><span class="special">;</span>
+        <span class="keyword">typedef</span> <span class="identifier">raw_associative_node</span> <span class="keyword">const</span><span class="special">*</span>
+                <span class="identifier">const_pointer</span><span class="special">;</span>
+
+        <span class="keyword">typedef</span> <span class="comment">// implementation_defined
+</span>                <span class="identifier">child_iterator</span><span class="special">;</span>
+        <span class="keyword">typedef</span> <span class="comment">// implementation_defined
+</span>                <span class="identifier">const_child_iterator</span><span class="special">;</span>
+
+        <span class="identifier">raw_associative_node</span><span class="special">();</span>
+
+        <span class="keyword">explicit</span> <span class="identifier">raw_associative_node</span><span class="special">(</span><span class="identifier">data_type</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">data</span><span class="special">);</span>
+
+        <span class="identifier">raw_associative_node</span><span class="special">(</span><span class="identifier">raw_associative_node</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">copy</span><span class="special">);</span>
+
+        <span class="identifier">raw_associative_node</span><span class="special">&</span>
+            <span class="keyword">operator</span><span class="special">=(</span><span class="identifier">raw_associative_node</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">copy</span><span class="special">);</span>
+
+        <span class="special">~</span><span class="identifier">raw_associative_node</span><span class="special">();</span>
+
+        <span class="identifier">data_type</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">get_data</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+
+        <span class="identifier">data_type</span><span class="special">&</span> <span class="identifier">get_data</span><span class="special">();</span>
+
+        <span class="identifier">const_pointer</span> <span class="identifier">get_parent</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+
+        <span class="identifier">pointer</span> <span class="identifier">get_parent</span><span class="special">();</span>
+
+        <span class="identifier">pointer</span> <span class="identifier">add_child</span><span class="special">(</span><span class="identifier">key_type</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">key</span><span class="special">,</span> <span class="identifier">data_type</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">data</span><span class="special">);</span>
+
+        <span class="identifier">pointer</span> <span class="identifier">add_child</span><span class="special">(</span><span class="identifier">key_type</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">key</span><span class="special">);</span>
+
+        <span class="identifier">pointer</span> <span class="identifier">add_child_copy</span><span class="special">(</span><span class="identifier">key_type</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">key</span><span class="special">,</span> <span class="identifier">const_pointer</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">copy</span><span class="special">);</span>
+
+        <span class="identifier">const_child_iterator</span> <span class="identifier">get_child_begin</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+
+        <span class="identifier">child_iterator</span> <span class="identifier">get_child_begin</span><span class="special">();</span>
+
+        <span class="identifier">const_child_iterator</span> <span class="identifier">get_child_end</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+
+        <span class="identifier">child_iterator</span> <span class="identifier">get_child_end</span><span class="special">();</span>
+
+        <span class="identifier">const_child_iterator</span> <span class="identifier">find_child</span><span class="special">(</span><span class="identifier">key_type</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">key</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
+
+        <span class="identifier">child_iterator</span> <span class="identifier">find_child</span><span class="special">(</span><span class="identifier">key_type</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">key</span><span class="special">);</span>
+
+        <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special"><</span><span class="identifier">const_child_iterator</span><span class="special">,</span><span class="identifier">const_child_iterator</span><span class="special">></span>
+            <span class="identifier">find_children</span><span class="special">(</span><span class="identifier">key_type</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">key</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
+
+        <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special"><</span><span class="identifier">child_iterator</span><span class="special">,</span><span class="identifier">child_iterator</span><span class="special">></span>
+            <span class="identifier">find_children</span><span class="special">(</span><span class="identifier">key_type</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">key</span><span class="special">);</span>
+
+        <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="identifier">remove_children</span><span class="special">(</span><span class="identifier">key_type</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">key</span><span class="special">);</span>
+
+        <span class="keyword">void</span> <span class="identifier">remove_all_children</span><span class="special">();</span>
+    <span class="special">};</span>
+
+<span class="special">}}</span>  <span class="comment">// namespace boost::tree_node
+</span></pre>
+<p>
+        </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.raw_associative_node.description"></a><a class="link" href="raw_associative_node.html#tree_node.reference.raw_associative_node.description" title="Description">Description</a>
+</h4></div></div></div>
+<p>
+          This class template is suitable for classes or algorithms that need to
+          map keys to child nodes in a tree node data structure that does not need
+          to be exposed to external code. Objects of this type can be stored by value,
+          and their children can be accessed by their associated keys for fast lookup.
+        </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 component depends on Boost.Utility.ContainerGen, which is not
+            yet a part of Boost. For now, you must perform a Subversion checkout
+            from the SVN Trac.
+          </p></td></tr>
+</table></div>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.raw_associative_node.definition"></a><a class="link" href="raw_associative_node.html#tree_node.reference.raw_associative_node.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/tree_node/raw_associative_node.hpp<span class="special">></span>
+</pre>
+<p>
+        </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.raw_associative_node.tpl_param"></a><a class="link" href="raw_associative_node.html#tree_node.reference.raw_associative_node.tpl_param" title="Template Parameters">Template
+        Parameters</a>
+</h4></div></div></div>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+                  <p>
+                    Parameter
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Description
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Requirements
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Default
+                  </p>
+                </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">Key</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    The type of a key object to be associated with a child of a
+                    <code class="computeroutput"><span class="identifier">raw_associative_node</span></code>.
+                  </p>
+                </td>
+<td>
+                </td>
+<td>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">Data</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    The type of the object to be stored in a <code class="computeroutput"><span class="identifier">raw_associative_node</span></code>.
+                  </p>
+                </td>
+<td>
+                </td>
+<td>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">AssociativeContainerSelector</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    The type that determines the internal map types whose mapped
+                    types are the same as the pointer type.
+                  </p>
+                </td>
+<td>
+                  <p>
+                    It must be a type for which associative_container_gen
+                    returns a valid container.
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">mapS</span></code>
+                  </p>
+                </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.raw_associative_node.model_of"></a><a class="link" href="raw_associative_node.html#tree_node.reference.raw_associative_node.model_of" title="Model of">Model
+        of</a>
+</h4></div></div></div>
+<pre class="programlisting"><span class="special">*</span> <a class="link" href="../concepts/associative_tree_node.html" title="Associative Tree Node"><span class="bold"><strong>Associative Tree Node</strong></span></a>
+<span class="special">*</span> Default Constructible <span class="keyword">if</span> <span class="error">`</span><span class="identifier">Data</span><span class="error">`</span> <span class="identifier">is</span> Default Constructible
+<span class="special">*</span> Copy Constructible
+<span class="special">*</span> Assignable <span class="keyword">if</span> <span class="error">`</span><span class="identifier">Data</span><span class="error">`</span> <span class="identifier">is</span> Assignable
+</pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.raw_associative_node.public_bases"></a><a class="link" href="raw_associative_node.html#tree_node.reference.raw_associative_node.public_bases" title="Public Base Classes">Public
+        Base Classes</a>
+</h4></div></div></div>
+<p>
+          None.
+        </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.raw_associative_node.members"></a><a class="link" href="raw_associative_node.html#tree_node.reference.raw_associative_node.members" title="Members">Members</a>
+</h4></div></div></div>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+                  <p>
+                    Name
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Expression
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Where defined
+                  </p>
+                </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+                  <p>
+                    Key type
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">key_type</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <a class="link" href="../concepts/tree_node.html" title="Tree Node"><span class="bold"><strong>Tree
+                    Node</strong></span></a>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Data type
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">data_type</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <a class="link" href="../concepts/tree_node.html" title="Tree Node"><span class="bold"><strong>Tree
+                    Node</strong></span></a>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Pointer type
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">pointer</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <a class="link" href="../concepts/tree_node.html" title="Tree Node"><span class="bold"><strong>Tree
+                    Node</strong></span></a>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Pointer-to-const type
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">const_pointer</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <a class="link" href="../concepts/tree_node.html" title="Tree Node"><span class="bold"><strong>Tree
+                    Node</strong></span></a>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Child iterator type
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">child_iterator</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <a class="link" href="../concepts/associative_tree_node.html" title="Associative Tree Node"><span class="bold"><strong>Associative Tree Node</strong></span></a>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Immutable child iterator type
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">const_child_iterator</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <a class="link" href="../concepts/associative_tree_node.html" title="Associative Tree Node"><span class="bold"><strong>Associative Tree Node</strong></span></a>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Default constructor
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">raw_associative_node</span><span class="special">();</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Default Constructible
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Constructor with data
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">explicit</span> <span class="identifier">raw_associative_node</span><span class="special">(</span><span class="identifier">data_type</span>
+                    <span class="keyword">const</span><span class="special">&);</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">raw_associative_node</span></code>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Copy constructor
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">raw_associative_node</span><span class="special">(</span><span class="identifier">raw_associative_node</span>
+                    <span class="keyword">const</span><span class="special">&);</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Copy Constructible
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Assignment operator
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">raw_associative_node</span><span class="special">&</span> <span class="keyword">operator</span><span class="special">=(</span><span class="identifier">raw_associative_node</span>
+                    <span class="keyword">const</span><span class="special">&);</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Assignable
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Data access
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">data_type</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">get_data</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <a class="link" href="../concepts/tree_node.html" title="Tree Node"><span class="bold"><strong>Tree
+                    Node</strong></span></a>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Data access
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">data_type</span><span class="special">&</span>
+                    <span class="identifier">get_data</span><span class="special">();</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <a class="link" href="../concepts/tree_node.html" title="Tree Node"><span class="bold"><strong>Tree
+                    Node</strong></span></a>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Parent access
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">const_pointer</span> <span class="identifier">get_parent</span><span class="special">()</span>
+                    <span class="keyword">const</span><span class="special">;</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <a class="link" href="../concepts/tree_node.html" title="Tree Node"><span class="bold"><strong>Tree
+                    Node</strong></span></a>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Parent access
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">pointer</span> <span class="identifier">get_parent</span><span class="special">();</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <a class="link" href="../concepts/tree_node.html" title="Tree Node"><span class="bold"><strong>Tree
+                    Node</strong></span></a>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Child creation with data
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">pointer</span> <span class="identifier">add_child</span><span class="special">(</span><span class="identifier">key_type</span>
+                    <span class="keyword">const</span><span class="special">&,</span>
+                    <span class="identifier">data_type</span> <span class="keyword">const</span><span class="special">&);</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <a class="link" href="../concepts/associative_tree_node.html" title="Associative Tree Node"><span class="bold"><strong>Associative Tree Node</strong></span></a>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Child creation
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">pointer</span> <span class="identifier">add_child</span><span class="special">(</span><span class="identifier">key_type</span>
+                    <span class="keyword">const</span><span class="special">&);</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <a class="link" href="../concepts/associative_tree_node.html" title="Associative Tree Node"><span class="bold"><strong>Associative Tree Node</strong></span></a>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Child copy creation
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">pointer</span> <span class="identifier">add_child</span><span class="special">(</span><span class="identifier">key_type</span>
+                    <span class="keyword">const</span><span class="special">&,</span>
+                    <span class="identifier">const_pointer</span> <span class="keyword">const</span><span class="special">&);</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <a class="link" href="../concepts/associative_tree_node.html" title="Associative Tree Node"><span class="bold"><strong>Associative Tree Node</strong></span></a>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Children range begin access
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">const_child_iterator</span>
+                    <span class="identifier">get_child_begin</span><span class="special">()</span>
+                    <span class="keyword">const</span><span class="special">;</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <a class="link" href="../concepts/tree_node.html" title="Tree Node"><span class="bold"><strong>Tree
+                    Node</strong></span></a>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Children range begin access
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">child_iterator</span> <span class="identifier">get_child_begin</span><span class="special">();</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <a class="link" href="../concepts/tree_node.html" title="Tree Node"><span class="bold"><strong>Tree
+                    Node</strong></span></a>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Children range past-the-end access
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">const_child_iterator</span>
+                    <span class="identifier">get_child_end</span><span class="special">()</span>
+                    <span class="keyword">const</span><span class="special">;</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <a class="link" href="../concepts/tree_node.html" title="Tree Node"><span class="bold"><strong>Tree
+                    Node</strong></span></a>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Children range past-the-end access
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">child_iterator</span> <span class="identifier">get_child_end</span><span class="special">();</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <a class="link" href="../concepts/tree_node.html" title="Tree Node"><span class="bold"><strong>Tree
+                    Node</strong></span></a>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Child search
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">const_child_iterator</span>
+                    <span class="identifier">find_child</span><span class="special">(</span><span class="identifier">key_type</span> <span class="keyword">const</span><span class="special">&)</span> <span class="keyword">const</span><span class="special">;</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <a class="link" href="../concepts/associative_tree_node.html" title="Associative Tree Node"><span class="bold"><strong>Associative Tree Node</strong></span></a>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Child search
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">child_iterator</span> <span class="identifier">find_child</span><span class="special">(</span><span class="identifier">key_type</span> <span class="keyword">const</span><span class="special">&);</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <a class="link" href="../concepts/associative_tree_node.html" title="Associative Tree Node"><span class="bold"><strong>Associative Tree Node</strong></span></a>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Child search range
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="literal">std::pair<Node::const_child_iterator,Node::const_child_iterator>
+                    find_children(key_type const&) const;</code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <a class="link" href="../concepts/associative_tree_node.html" title="Associative Tree Node"><span class="bold"><strong>Associative Tree Node</strong></span></a>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Child search range
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="literal">std::pair<Node::child_iterator,Node::child_iterator>
+                    find_children(key_type const&);</code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <a class="link" href="../concepts/associative_tree_node.html" title="Associative Tree Node"><span class="bold"><strong>Associative Tree Node</strong></span></a>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Remove children
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="identifier">remove_children</span><span class="special">(</span><span class="identifier">key_type</span>
+                    <span class="keyword">const</span><span class="special">&);</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <a class="link" href="../concepts/associative_tree_node.html" title="Associative Tree Node"><span class="bold"><strong>Associative Tree Node</strong></span></a>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Remove all children
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">void</span> <span class="identifier">remove_all_children</span><span class="special">();</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <a class="link" href="../concepts/tree_node.html" title="Tree Node"><span class="bold"><strong>Tree
+                    Node</strong></span></a>
+                  </p>
+                </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.raw_associative_node.example"></a><a class="link" href="raw_associative_node.html#tree_node.reference.raw_associative_node.example" title="Example">Example</a>
+</h4></div></div></div>
+<p>
+          <example/raw_associative_node.cpp>
+        </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 © 2011 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="simple_node.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="simple_associative_node.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/raw_node.html
==============================================================================
--- (empty file)
+++ sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/raw_node.html	2011-09-23 22:11:39 EDT (Fri, 23 Sep 2011)
@@ -0,0 +1,618 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>raw_node</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. tree_node 0.1">
+<link rel="up" href="../reference.html" title="Reference">
+<link rel="prev" href="../reference.html" title="Reference">
+<link rel="next" href="simple_node.html" title="simple_node">
+</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="simple_node.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="tree_node.reference.raw_node"></a><a class="link" href="raw_node.html" title="raw_node"><code class="computeroutput"><span class="identifier">raw_node</span></code></a>
+</h3></div></div></div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.raw_node.synopsis"></a><a class="link" href="raw_node.html#tree_node.reference.raw_node.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">namespace</span> <span class="identifier">tree_node</span> <span class="special">{</span>
+
+    <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span>
+    <span class="keyword">class</span> <span class="identifier">raw_node</span>
+    <span class="special">{</span>
+     <span class="keyword">public</span><span class="special">:</span>
+        <span class="keyword">typedef</span> <span class="identifier">T</span>
+                <span class="identifier">data_type</span><span class="special">;</span>
+        <span class="keyword">typedef</span> <span class="identifier">raw_node</span><span class="special">*</span>
+                <span class="identifier">pointer</span><span class="special">;</span>
+        <span class="keyword">typedef</span> <span class="identifier">raw_node</span> <span class="keyword">const</span><span class="special">*</span>
+                <span class="identifier">const_pointer</span><span class="special">;</span>
+
+        <span class="keyword">typedef</span> <span class="comment">// implementation_defined
+</span>                <span class="identifier">child_iterator</span><span class="special">;</span>
+        <span class="keyword">typedef</span> <span class="comment">// implementation_defined
+</span>                <span class="identifier">const_child_iterator</span><span class="special">;</span>
+
+        <span class="identifier">raw_node</span><span class="special">();</span>
+
+        <span class="keyword">explicit</span> <span class="identifier">raw_node</span><span class="special">(</span><span class="identifier">data_type</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">data</span><span class="special">);</span>
+
+        <span class="identifier">raw_node</span><span class="special">(</span><span class="identifier">raw_node</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">copy</span><span class="special">);</span>
+
+        <span class="identifier">raw_node</span><span class="special">&</span> <span class="keyword">operator</span><span class="special">=(</span><span class="identifier">raw_node</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">copy</span><span class="special">);</span>
+
+        <span class="special">~</span><span class="identifier">raw_node</span><span class="special">();</span>
+
+        <span class="identifier">data_type</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">get_data</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+
+        <span class="identifier">data_type</span><span class="special">&</span> <span class="identifier">get_data</span><span class="special">();</span>
+
+        <span class="identifier">const_pointer</span> <span class="identifier">get_parent</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+
+        <span class="identifier">pointer</span> <span class="identifier">get_parent</span><span class="special">();</span>
+
+        <span class="identifier">pointer</span> <span class="identifier">add_child</span><span class="special">(</span><span class="identifier">data_type</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">data</span><span class="special">);</span>
+
+        <span class="identifier">pointer</span> <span class="identifier">add_child</span><span class="special">();</span>
+
+        <span class="identifier">pointer</span> <span class="identifier">add_child_copy</span><span class="special">(</span><span class="identifier">const_pointer</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">copy</span><span class="special">);</span>
+
+        <span class="identifier">const_child_iterator</span> <span class="identifier">get_child_begin</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+
+        <span class="identifier">child_iterator</span> <span class="identifier">get_child_begin</span><span class="special">();</span>
+
+        <span class="identifier">const_child_iterator</span> <span class="identifier">get_child_end</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+
+        <span class="identifier">child_iterator</span> <span class="identifier">get_child_end</span><span class="special">();</span>
+
+        <span class="keyword">void</span> <span class="identifier">remove_all_children</span><span class="special">();</span>
+    <span class="special">};</span>
+
+<span class="special">}}</span>  <span class="comment">// namespace boost::tree_node
+</span></pre>
+<p>
+        </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.raw_node.description"></a><a class="link" href="raw_node.html#tree_node.reference.raw_node.description" title="Description">Description</a>
+</h4></div></div></div>
+<p>
+          This class template is suitable for classes or algorithms that require
+          a tree node data structure but do not need to expose it to external code.
+          Objects of this type can be stored by value, and their children can be
+          accessed by offsetting the start of the range with a numerical index for
+          fast lookup.
+        </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.raw_node.definition"></a><a class="link" href="raw_node.html#tree_node.reference.raw_node.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/tree_node/raw_node.hpp<span class="special">></span>
+</pre>
+<p>
+        </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.raw_node.tpl_param"></a><a class="link" href="raw_node.html#tree_node.reference.raw_node.tpl_param" title="Template Parameters">Template Parameters</a>
+</h4></div></div></div>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+                  <p>
+                    Parameter
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Description
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Requirements
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Default
+                  </p>
+                </th>
+</tr></thead>
+<tbody><tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">T</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    The type of the object to be stored in a <code class="computeroutput"><span class="identifier">raw_node</span></code>.
+                  </p>
+                </td>
+<td>
+                </td>
+<td>
+                </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.raw_node.model_of"></a><a class="link" href="raw_node.html#tree_node.reference.raw_node.model_of" title="Model of">Model of</a>
+</h4></div></div></div>
+<pre class="programlisting"><span class="special">*</span> <a class="link" href="../concepts/raci_tree_node.html" title="Random Access Child Iterator Tree Node"><span class="bold"><strong>Random Access Child Iterator Tree Node</strong></span></a>
+<span class="special">*</span> Default Constructible <span class="keyword">if</span> <span class="error">`</span><span class="identifier">T</span><span class="error">`</span> <span class="identifier">is</span> Default Constructible
+<span class="special">*</span> Copy Constructible
+<span class="special">*</span> Assignable <span class="keyword">if</span> <span class="error">`</span><span class="identifier">T</span><span class="error">`</span> <span class="identifier">is</span> Assignable
+</pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.raw_node.public_bases"></a><a class="link" href="raw_node.html#tree_node.reference.raw_node.public_bases" title="Public Base Classes">Public Base
+        Classes</a>
+</h4></div></div></div>
+<p>
+          None.
+        </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.raw_node.members"></a><a class="link" href="raw_node.html#tree_node.reference.raw_node.members" title="Members">Members</a>
+</h4></div></div></div>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+                  <p>
+                    Name
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Expression
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Where defined
+                  </p>
+                </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+                  <p>
+                    Data type
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">data_type</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <a class="link" href="../concepts/tree_node.html" title="Tree Node"><span class="bold"><strong>Tree
+                    Node</strong></span></a>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Pointer type
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">pointer</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <a class="link" href="../concepts/tree_node.html" title="Tree Node"><span class="bold"><strong>Tree
+                    Node</strong></span></a>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Pointer-to-const type
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">const_pointer</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <a class="link" href="../concepts/tree_node.html" title="Tree Node"><span class="bold"><strong>Tree
+                    Node</strong></span></a>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Child iterator type
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">child_iterator</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <a class="link" href="../concepts/raci_tree_node.html" title="Random Access Child Iterator Tree Node"><span class="bold"><strong>Random
+                    Access Child Iterator Tree Node</strong></span></a>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Immutable child iterator type
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">const_child_iterator</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <a class="link" href="../concepts/raci_tree_node.html" title="Random Access Child Iterator Tree Node"><span class="bold"><strong>Random
+                    Access Child Iterator Tree Node</strong></span></a>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Default constructor
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">raw_node</span><span class="special">();</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Default Constructible
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Constructor with data
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">explicit</span> <span class="identifier">raw_node</span><span class="special">(</span><span class="identifier">data_type</span>
+                    <span class="keyword">const</span><span class="special">&);</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">raw_node</span></code>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Copy constructor
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">raw_node</span><span class="special">(</span><span class="identifier">raw_node</span> <span class="keyword">const</span><span class="special">&);</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Copy Constructible
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Assignment operator
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">raw_node</span><span class="special">&</span>
+                    <span class="keyword">operator</span><span class="special">=(</span><span class="identifier">raw_node</span> <span class="keyword">const</span><span class="special">&);</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Assignable
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Data access
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">data_type</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">get_data</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <a class="link" href="../concepts/tree_node.html" title="Tree Node"><span class="bold"><strong>Tree
+                    Node</strong></span></a>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Data access
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">data_type</span><span class="special">&</span>
+                    <span class="identifier">get_data</span><span class="special">();</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <a class="link" href="../concepts/tree_node.html" title="Tree Node"><span class="bold"><strong>Tree
+                    Node</strong></span></a>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Parent access
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">const_pointer</span> <span class="identifier">get_parent</span><span class="special">()</span>
+                    <span class="keyword">const</span><span class="special">;</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <a class="link" href="../concepts/tree_node.html" title="Tree Node"><span class="bold"><strong>Tree
+                    Node</strong></span></a>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Parent access
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">pointer</span> <span class="identifier">get_parent</span><span class="special">();</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <a class="link" href="../concepts/tree_node.html" title="Tree Node"><span class="bold"><strong>Tree
+                    Node</strong></span></a>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Child creation with data
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">pointer</span> <span class="identifier">add_child</span><span class="special">(</span><span class="identifier">data_type</span>
+                    <span class="keyword">const</span><span class="special">&);</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <a class="link" href="../concepts/raci_tree_node.html" title="Random Access Child Iterator Tree Node"><span class="bold"><strong>Random
+                    Access Child Iterator Tree Node</strong></span></a>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Child creation
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">pointer</span> <span class="identifier">add_child</span><span class="special">();</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <a class="link" href="../concepts/raci_tree_node.html" title="Random Access Child Iterator Tree Node"><span class="bold"><strong>Random
+                    Access Child Iterator Tree Node</strong></span></a>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Child copy creation
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">pointer</span> <span class="identifier">add_child</span><span class="special">(</span><span class="identifier">const_pointer</span>
+                    <span class="keyword">const</span><span class="special">&);</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <a class="link" href="../concepts/raci_tree_node.html" title="Random Access Child Iterator Tree Node"><span class="bold"><strong>Random
+                    Access Child Iterator Tree Node</strong></span></a>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Children range begin access
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">const_child_iterator</span>
+                    <span class="identifier">get_child_begin</span><span class="special">()</span>
+                    <span class="keyword">const</span><span class="special">;</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <a class="link" href="../concepts/tree_node.html" title="Tree Node"><span class="bold"><strong>Tree
+                    Node</strong></span></a>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Children range begin access
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">child_iterator</span> <span class="identifier">get_child_begin</span><span class="special">();</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <a class="link" href="../concepts/tree_node.html" title="Tree Node"><span class="bold"><strong>Tree
+                    Node</strong></span></a>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Children range past-the-end access
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">const_child_iterator</span>
+                    <span class="identifier">get_child_end</span><span class="special">()</span>
+                    <span class="keyword">const</span><span class="special">;</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <a class="link" href="../concepts/tree_node.html" title="Tree Node"><span class="bold"><strong>Tree
+                    Node</strong></span></a>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Children range past-the-end access
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">child_iterator</span> <span class="identifier">get_child_end</span><span class="special">();</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <a class="link" href="../concepts/tree_node.html" title="Tree Node"><span class="bold"><strong>Tree
+                    Node</strong></span></a>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Remove all children
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">void</span> <span class="identifier">remove_all_children</span><span class="special">();</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <a class="link" href="../concepts/tree_node.html" title="Tree Node"><span class="bold"><strong>Tree
+                    Node</strong></span></a>
+                  </p>
+                </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.raw_node.example"></a><a class="link" href="raw_node.html#tree_node.reference.raw_node.example" title="Example">Example</a>
+</h4></div></div></div>
+<p>
+          <example/raw_node.cpp>
+        </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 © 2011 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="simple_node.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/simple_associative_node.html
==============================================================================
--- (empty file)
+++ sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/simple_associative_node.html	2011-09-23 22:11:39 EDT (Fri, 23 Sep 2011)
@@ -0,0 +1,774 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>simple_associative_node</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. tree_node 0.1">
+<link rel="up" href="../reference.html" title="Reference">
+<link rel="prev" href="raw_associative_node.html" title="raw_associative_node">
+<link rel="next" href="breadth_first_iterator.html" title="breadth_first_iterator">
+</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="raw_associative_node.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="breadth_first_iterator.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="tree_node.reference.simple_associative_node"></a><a class="link" href="simple_associative_node.html" title="simple_associative_node"><code class="computeroutput"><span class="identifier">simple_associative_node</span></code></a>
+</h3></div></div></div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.simple_associative_node.synopsis"></a><a class="link" href="simple_associative_node.html#tree_node.reference.simple_associative_node.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">namespace</span> <span class="identifier">tree_node</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">Data</span>
+      <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">AssociativeContainerSelector</span> <span class="special">=</span> <span class="identifier">mapS</span>
+    <span class="special">></span>
+    <span class="keyword">class</span> <span class="identifier">simple_associative_node</span>
+      <span class="special">:</span> <span class="keyword">public</span> <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">tr1</span><span class="special">::</span><span class="identifier">enable_shared_from_this</span><span class="special"><</span>
+            <span class="identifier">simple_associative_node</span><span class="special"><</span><span class="identifier">Key</span><span class="special">,</span><span class="identifier">Data</span><span class="special">,</span><span class="identifier">AssociativeContainerSelector</span><span class="special">></span>
+        <span class="special">></span>
+      <span class="special">,</span> <span class="keyword">private</span> <span class="identifier">noncopyable</span>
+    <span class="special">{</span>
+     <span class="keyword">public</span><span class="special">:</span>
+        <span class="keyword">typedef</span> <span class="identifier">Key</span>
+                <span class="identifier">key_type</span><span class="special">;</span>
+        <span class="keyword">typedef</span> <span class="identifier">Data</span>
+                <span class="identifier">data_type</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">tr1</span><span class="special">::</span><span class="identifier">shared_ptr</span><span class="special"><</span><span class="identifier">simple_associative_node</span><span class="special">></span>
+                <span class="identifier">pointer</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">tr1</span><span class="special">::</span><span class="identifier">shared_ptr</span><span class="special"><</span><span class="identifier">simple_associative_node</span> <span class="keyword">const</span><span class="special">></span>
+                <span class="identifier">const_pointer</span><span class="special">;</span>
+
+        <span class="keyword">typedef</span> <span class="comment">// implementation_defined
+</span>                <span class="identifier">child_iterator</span><span class="special">;</span>
+        <span class="keyword">typedef</span> <span class="comment">// implementation_defined
+</span>                <span class="identifier">const_child_iterator</span><span class="special">;</span>
+
+        <span class="special">~</span><span class="identifier">simple_associative_node</span><span class="special">();</span>
+
+        <span class="identifier">data_type</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">get_data</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+
+        <span class="identifier">data_type</span><span class="special">&</span> <span class="identifier">get_data</span><span class="special">();</span>
+
+        <span class="identifier">const_pointer</span> <span class="identifier">get_parent</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+
+        <span class="identifier">pointer</span> <span class="identifier">get_parent</span><span class="special">();</span>
+
+        <span class="identifier">pointer</span> <span class="identifier">add_child</span><span class="special">(</span><span class="identifier">key_type</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">key</span><span class="special">,</span> <span class="identifier">data_type</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">data</span><span class="special">);</span>
+
+        <span class="identifier">pointer</span> <span class="identifier">add_child</span><span class="special">(</span><span class="identifier">key_type</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">key</span><span class="special">);</span>
+
+        <span class="identifier">pointer</span> <span class="identifier">add_child_copy</span><span class="special">(</span><span class="identifier">key_type</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">key</span><span class="special">,</span> <span class="identifier">const_pointer</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">copy</span><span class="special">);</span>
+
+        <span class="identifier">const_child_iterator</span> <span class="identifier">get_child_begin</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+
+        <span class="identifier">child_iterator</span> <span class="identifier">get_child_begin</span><span class="special">();</span>
+
+        <span class="identifier">const_child_iterator</span> <span class="identifier">get_child_end</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+
+        <span class="identifier">child_iterator</span> <span class="identifier">get_child_end</span><span class="special">();</span>
+
+        <span class="identifier">const_child_iterator</span> <span class="identifier">find_child</span><span class="special">(</span><span class="identifier">key_type</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">key</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
+
+        <span class="identifier">child_iterator</span> <span class="identifier">find_child</span><span class="special">(</span><span class="identifier">key_type</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">key</span><span class="special">);</span>
+
+        <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special"><</span><span class="identifier">const_child_iterator</span><span class="special">,</span><span class="identifier">const_child_iterator</span><span class="special">></span>
+            <span class="identifier">find_children</span><span class="special">(</span><span class="identifier">key_type</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">key</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
+
+        <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">pair</span><span class="special"><</span><span class="identifier">child_iterator</span><span class="special">,</span><span class="identifier">child_iterator</span><span class="special">></span>
+            <span class="identifier">find_children</span><span class="special">(</span><span class="identifier">key_type</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">key</span><span class="special">);</span>
+
+        <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="identifier">remove_children</span><span class="special">(</span><span class="identifier">Key</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">key</span><span class="special">);</span>
+
+        <span class="keyword">void</span> <span class="identifier">remove_all_children</span><span class="special">();</span>
+
+        <span class="keyword">static</span> <span class="identifier">pointer</span> <span class="identifier">create</span><span class="special">(</span><span class="identifier">data_type</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">data</span><span class="special">);</span>
+
+        <span class="keyword">static</span> <span class="identifier">pointer</span> <span class="identifier">create</span><span class="special">();</span>
+
+        <span class="keyword">static</span> <span class="identifier">pointer</span> <span class="identifier">create_copy</span><span class="special">(</span><span class="identifier">const_pointer</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">p</span><span class="special">);</span>
+    <span class="special">};</span>
+
+<span class="special">}}</span>  <span class="comment">// namespace boost::tree_node
+</span></pre>
+<p>
+        </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.simple_associative_node.description"></a><a class="link" href="simple_associative_node.html#tree_node.reference.simple_associative_node.description" title="Description">Description</a>
+</h4></div></div></div>
+<p>
+          This class template is suitable for classes or algorithms that need to
+          map keys to child nodes in a tree node data structure that must be exposed
+          to external code. Objects of this type must be stored by <code class="computeroutput"><span class="identifier">simple_associative_node</span><span class="special">::</span><span class="identifier">pointer</span></code> and can only be instantiated
+          through the <code class="computeroutput"><span class="keyword">static</span></code> creation
+          methods that this class template provides. Their children can be accessed
+          by their associated keys for fast lookup.
+        </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 component depends on Boost.Utility.ContainerGen, which is not
+            yet a part of Boost. For now, you must perform a Subversion checkout
+            from the SVN Trac.
+          </p></td></tr>
+</table></div>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.simple_associative_node.definition"></a><a class="link" href="simple_associative_node.html#tree_node.reference.simple_associative_node.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/tree_node/simple_associative_node.hpp<span class="special">></span>
+</pre>
+<p>
+        </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.simple_associative_node.tpl_param"></a><a class="link" href="simple_associative_node.html#tree_node.reference.simple_associative_node.tpl_param" title="Template Parameters">Template
+        Parameters</a>
+</h4></div></div></div>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+                  <p>
+                    Parameter
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Description
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Requirements
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Default
+                  </p>
+                </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">Key</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    The type of a key object to be associated with a child of a
+                    <code class="computeroutput"><span class="identifier">raw_associative_node</span></code>.
+                  </p>
+                </td>
+<td>
+                </td>
+<td>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">Data</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    The type of the object to be stored in a <code class="computeroutput"><span class="identifier">simple_associative_node</span></code>.
+                  </p>
+                </td>
+<td>
+                </td>
+<td>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">AssociativeContainerSelector</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    The type that determines the internal map types whose mapped
+                    types are the same as the pointer type.
+                  </p>
+                </td>
+<td>
+                  <p>
+                    It must be a type for which associative_container_gen
+                    returns a valid container.
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">mapS</span></code>
+                  </p>
+                </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.simple_associative_node.model_of"></a><a class="link" href="simple_associative_node.html#tree_node.reference.simple_associative_node.model_of" title="Model of">Model
+        of</a>
+</h4></div></div></div>
+<p>
+          <a class="link" href="../concepts/associative_tree_node.html" title="Associative Tree Node"><span class="bold"><strong>Associative
+          Tree Node</strong></span></a>
+        </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.simple_associative_node.public_bases"></a><a class="link" href="simple_associative_node.html#tree_node.reference.simple_associative_node.public_bases" title="Public Base Classes">Public
+        Base Classes</a>
+</h4></div></div></div>
+<p>
+          std::tr1::enable_shared_from_this
+        </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.simple_associative_node.members"></a><a class="link" href="simple_associative_node.html#tree_node.reference.simple_associative_node.members" title="Members">Members</a>
+</h4></div></div></div>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+                  <p>
+                    Name
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Expression
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Description
+                  </p>
+                </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+                  <p>
+                    Data type
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">data_type</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Defined by the <a class="link" href="../concepts/tree_node.html" title="Tree Node"><span class="bold"><strong>Tree Node</strong></span></a> concept.
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Data type
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">data_type</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Defined by the <a class="link" href="../concepts/tree_node.html" title="Tree Node"><span class="bold"><strong>Tree Node</strong></span></a> concept.
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Pointer type
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">pointer</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Defined by the <a class="link" href="../concepts/tree_node.html" title="Tree Node"><span class="bold"><strong>Tree Node</strong></span></a> concept.
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Pointer-to-const type
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">const_pointer</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Defined by the <a class="link" href="../concepts/tree_node.html" title="Tree Node"><span class="bold"><strong>Tree Node</strong></span></a> concept.
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Child iterator type
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">child_iterator</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Defined by the <a class="link" href="../concepts/associative_tree_node.html" title="Associative Tree Node"><span class="bold"><strong>Associative Tree Node</strong></span></a> concept.
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Immutable child iterator type
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">const_child_iterator</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Defined by the <a class="link" href="../concepts/associative_tree_node.html" title="Associative Tree Node"><span class="bold"><strong>Associative Tree Node</strong></span></a> concept.
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Node creation with data
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">static</span> <span class="identifier">pointer</span>
+                    <span class="identifier">create</span><span class="special">(</span><span class="identifier">data_type</span> <span class="keyword">const</span><span class="special">&);</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Creates a <code class="computeroutput"><span class="identifier">simple_associative_node</span></code>
+                    object with the specified data and returns a pointer to it.
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Node creation
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">static</span> <span class="identifier">pointer</span>
+                    <span class="identifier">create</span><span class="special">();</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Creates a <code class="computeroutput"><span class="identifier">simple_associative_node</span></code>
+                    object and returns a pointer to it.
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Node copy creation
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">static</span> <span class="identifier">pointer</span>
+                    <span class="identifier">create_copy</span><span class="special">(</span><span class="identifier">const_pointer</span> <span class="keyword">const</span><span class="special">&);</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Creates a deep copy of the specified node. Returns a pointer
+                    to the new node.
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Data access
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">data_type</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">get_data</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Defined by the <a class="link" href="../concepts/tree_node.html" title="Tree Node"><span class="bold"><strong>Tree Node</strong></span></a> concept.
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Data access
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">data_type</span><span class="special">&</span>
+                    <span class="identifier">get_data</span><span class="special">();</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Defined by the <a class="link" href="../concepts/tree_node.html" title="Tree Node"><span class="bold"><strong>Tree Node</strong></span></a> concept.
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Parent access
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">const_pointer</span> <span class="identifier">get_parent</span><span class="special">()</span>
+                    <span class="keyword">const</span><span class="special">;</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Defined by the <a class="link" href="../concepts/tree_node.html" title="Tree Node"><span class="bold"><strong>Tree Node</strong></span></a> concept.
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Parent access
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">pointer</span> <span class="identifier">get_parent</span><span class="special">();</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Defined by the <a class="link" href="../concepts/tree_node.html" title="Tree Node"><span class="bold"><strong>Tree Node</strong></span></a> concept.
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Child creation with data
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">pointer</span> <span class="identifier">add_child</span><span class="special">(</span><span class="identifier">key_type</span>
+                    <span class="keyword">const</span><span class="special">&,</span>
+                    <span class="identifier">data_type</span> <span class="keyword">const</span><span class="special">&);</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Defined by the <a class="link" href="../concepts/associative_tree_node.html" title="Associative Tree Node"><span class="bold"><strong>Associative Tree Node</strong></span></a> concept.
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Child creation
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">pointer</span> <span class="identifier">add_child</span><span class="special">(</span><span class="identifier">key_type</span>
+                    <span class="keyword">const</span><span class="special">&);</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Defined by the <a class="link" href="../concepts/associative_tree_node.html" title="Associative Tree Node"><span class="bold"><strong>Associative Tree Node</strong></span></a> concept.
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Child copy creation
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">pointer</span> <span class="identifier">add_child</span><span class="special">(</span><span class="identifier">key_type</span>
+                    <span class="keyword">const</span><span class="special">&,</span>
+                    <span class="identifier">const_pointer</span> <span class="keyword">const</span><span class="special">&);</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Defined by the <a class="link" href="../concepts/associative_tree_node.html" title="Associative Tree Node"><span class="bold"><strong>Associative Tree Node</strong></span></a> concept.
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Children range begin access
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">const_child_iterator</span>
+                    <span class="identifier">get_child_begin</span><span class="special">()</span>
+                    <span class="keyword">const</span><span class="special">;</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Defined by the <a class="link" href="../concepts/tree_node.html" title="Tree Node"><span class="bold"><strong>Tree Node</strong></span></a> concept.
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Children range begin access
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">child_iterator</span> <span class="identifier">get_child_begin</span><span class="special">();</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Defined by the <a class="link" href="../concepts/tree_node.html" title="Tree Node"><span class="bold"><strong>Tree Node</strong></span></a> concept.
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Children range past-the-end access
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">const_child_iterator</span>
+                    <span class="identifier">get_child_end</span><span class="special">()</span>
+                    <span class="keyword">const</span><span class="special">;</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Defined by the <a class="link" href="../concepts/tree_node.html" title="Tree Node"><span class="bold"><strong>Tree Node</strong></span></a> concept.
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Children range past-the-end access
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">child_iterator</span> <span class="identifier">get_child_end</span><span class="special">();</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Defined by the <a class="link" href="../concepts/tree_node.html" title="Tree Node"><span class="bold"><strong>Tree Node</strong></span></a> concept.
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Child search
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">const_child_iterator</span>
+                    <span class="identifier">find_child</span><span class="special">(</span><span class="identifier">key_type</span> <span class="keyword">const</span><span class="special">&)</span> <span class="keyword">const</span><span class="special">;</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Defined by the <a class="link" href="../concepts/associative_tree_node.html" title="Associative Tree Node"><span class="bold"><strong>Associative Tree Node</strong></span></a> concept.
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Child search
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">child_iterator</span> <span class="identifier">find_child</span><span class="special">(</span><span class="identifier">key_type</span> <span class="keyword">const</span><span class="special">&);</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Defined by the <a class="link" href="../concepts/associative_tree_node.html" title="Associative Tree Node"><span class="bold"><strong>Associative Tree Node</strong></span></a> concept.
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Child search range
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="literal">std::pair<Node::const_child_iterator,Node::const_child_iterator>
+                    find_children(key_type const&) const;</code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Defined by the <a class="link" href="../concepts/associative_tree_node.html" title="Associative Tree Node"><span class="bold"><strong>Associative Tree Node</strong></span></a> concept.
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Child search range
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="literal">std::pair<Node::child_iterator,Node::child_iterator>
+                    find_children(key_type const&);</code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Defined by the <a class="link" href="../concepts/associative_tree_node.html" title="Associative Tree Node"><span class="bold"><strong>Associative Tree Node</strong></span></a> concept.
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Remove children
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="identifier">remove_children</span><span class="special">(</span><span class="identifier">key_type</span>
+                    <span class="keyword">const</span><span class="special">&);</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Defined by the <a class="link" href="../concepts/associative_tree_node.html" title="Associative Tree Node"><span class="bold"><strong>Associative Tree Node</strong></span></a> concept.
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Remove all children
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">void</span> <span class="identifier">remove_all_children</span><span class="special">();</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Defined by the <a class="link" href="../concepts/tree_node.html" title="Tree Node"><span class="bold"><strong>Tree Node</strong></span></a> concept.
+                  </p>
+                </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.simple_associative_node.example"></a><a class="link" href="simple_associative_node.html#tree_node.reference.simple_associative_node.example" title="Example">Example</a>
+</h4></div></div></div>
+<p>
+          <example/simple_associative_node.cpp>
+        </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 © 2011 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="raw_associative_node.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="breadth_first_iterator.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/simple_node.html
==============================================================================
--- (empty file)
+++ sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/simple_node.html	2011-09-23 22:11:39 EDT (Fri, 23 Sep 2011)
@@ -0,0 +1,595 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>simple_node</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. tree_node 0.1">
+<link rel="up" href="../reference.html" title="Reference">
+<link rel="prev" href="raw_node.html" title="raw_node">
+<link rel="next" href="raw_associative_node.html" title="raw_associative_node">
+</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="raw_node.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="raw_associative_node.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="tree_node.reference.simple_node"></a><a class="link" href="simple_node.html" title="simple_node"><code class="computeroutput"><span class="identifier">simple_node</span></code></a>
+</h3></div></div></div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.simple_node.synopsis"></a><a class="link" href="simple_node.html#tree_node.reference.simple_node.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">namespace</span> <span class="identifier">tree_node</span> <span class="special">{</span>
+
+    <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span>
+    <span class="keyword">class</span> <span class="identifier">simple_node</span>
+      <span class="special">:</span> <span class="keyword">public</span> <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">tr1</span><span class="special">::</span><span class="identifier">enable_shared_from_this</span><span class="special"><</span><span class="identifier">simple_node</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span> <span class="special">></span>
+      <span class="special">,</span> <span class="keyword">private</span> <span class="identifier">noncopyable</span>
+    <span class="special">{</span>
+     <span class="keyword">public</span><span class="special">:</span>
+        <span class="keyword">typedef</span> <span class="identifier">T</span>
+                <span class="identifier">data_type</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">tr1</span><span class="special">::</span><span class="identifier">shared_ptr</span><span class="special"><</span><span class="identifier">simple_node</span><span class="special">></span>
+                <span class="identifier">pointer</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">tr1</span><span class="special">::</span><span class="identifier">shared_ptr</span><span class="special"><</span><span class="identifier">simple_node</span> <span class="keyword">const</span><span class="special">></span>
+                <span class="identifier">const_pointer</span><span class="special">;</span>
+
+        <span class="keyword">typedef</span> <span class="comment">// implementation_defined
+</span>                <span class="identifier">child_iterator</span><span class="special">;</span>
+        <span class="keyword">typedef</span> <span class="comment">// implementation_defined
+</span>                <span class="identifier">const_child_iterator</span><span class="special">;</span>
+
+        <span class="special">~</span><span class="identifier">simple_node</span><span class="special">();</span>
+
+        <span class="identifier">data_type</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">get_data</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+
+        <span class="identifier">data_type</span><span class="special">&</span> <span class="identifier">get_data</span><span class="special">();</span>
+
+        <span class="identifier">const_pointer</span> <span class="identifier">get_parent</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+
+        <span class="identifier">pointer</span> <span class="identifier">get_parent</span><span class="special">();</span>
+
+        <span class="identifier">pointer</span> <span class="identifier">add_child</span><span class="special">(</span><span class="identifier">data_type</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">data</span><span class="special">);</span>
+
+        <span class="identifier">pointer</span> <span class="identifier">add_child</span><span class="special">();</span>
+
+        <span class="identifier">pointer</span> <span class="identifier">add_child_copy</span><span class="special">(</span><span class="identifier">const_pointer</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">copy</span><span class="special">);</span>
+
+        <span class="identifier">const_child_iterator</span> <span class="identifier">get_child_begin</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+
+        <span class="identifier">child_iterator</span> <span class="identifier">get_child_begin</span><span class="special">();</span>
+
+        <span class="identifier">const_child_iterator</span> <span class="identifier">get_child_end</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+
+        <span class="identifier">child_iterator</span> <span class="identifier">get_child_end</span><span class="special">();</span>
+
+        <span class="keyword">void</span> <span class="identifier">remove_all_children</span><span class="special">();</span>
+
+        <span class="keyword">static</span> <span class="identifier">pointer</span> <span class="identifier">create</span><span class="special">(</span><span class="identifier">data_type</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">data</span><span class="special">);</span>
+
+        <span class="keyword">static</span> <span class="identifier">pointer</span> <span class="identifier">create</span><span class="special">();</span>
+
+        <span class="keyword">static</span> <span class="identifier">pointer</span> <span class="identifier">create_copy</span><span class="special">(</span><span class="identifier">const_pointer</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">p</span><span class="special">);</span>
+    <span class="special">};</span>
+
+<span class="special">}}</span>  <span class="comment">// namespace boost::tree_node
+</span></pre>
+<p>
+        </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.simple_node.description"></a><a class="link" href="simple_node.html#tree_node.reference.simple_node.description" title="Description">Description</a>
+</h4></div></div></div>
+<p>
+          This class template is suitable for classes or algorithms that require
+          a tree node data structure that must be exposed to external code. Objects
+          of this type must be stored by <code class="computeroutput"><span class="identifier">simple_node</span><span class="special">::</span><span class="identifier">pointer</span></code>
+          and can only be instantiated through the <code class="computeroutput"><span class="keyword">static</span></code>
+          creation methods that this class template provides. Their children can
+          be accessed by offsetting the start of the range with a numerical index
+          for fast lookup.
+        </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.simple_node.definition"></a><a class="link" href="simple_node.html#tree_node.reference.simple_node.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/tree_node/simple_node.hpp<span class="special">></span>
+</pre>
+<p>
+        </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.simple_node.tpl_param"></a><a class="link" href="simple_node.html#tree_node.reference.simple_node.tpl_param" title="Template Parameters">Template
+        Parameters</a>
+</h4></div></div></div>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+                  <p>
+                    Parameter
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Description
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Requirements
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Default
+                  </p>
+                </th>
+</tr></thead>
+<tbody><tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">T</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    The type of the object to be stored in a <code class="computeroutput"><span class="identifier">simple_node</span></code>.
+                  </p>
+                </td>
+<td>
+                </td>
+<td>
+                </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.simple_node.model_of"></a><a class="link" href="simple_node.html#tree_node.reference.simple_node.model_of" title="Model of">Model of</a>
+</h4></div></div></div>
+<p>
+          <a class="link" href="../concepts/raci_tree_node.html" title="Random Access Child Iterator Tree Node"><span class="bold"><strong>Random
+          Access Child Iterator Tree Node</strong></span></a>
+        </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.simple_node.public_bases"></a><a class="link" href="simple_node.html#tree_node.reference.simple_node.public_bases" title="Public Base Classes">Public
+        Base Classes</a>
+</h4></div></div></div>
+<p>
+          std::tr1::enable_shared_from_this
+        </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.simple_node.members"></a><a class="link" href="simple_node.html#tree_node.reference.simple_node.members" title="Members">Members</a>
+</h4></div></div></div>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+                  <p>
+                    Name
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Expression
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Description
+                  </p>
+                </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+                  <p>
+                    Data type
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">data_type</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Defined by the <a class="link" href="../concepts/tree_node.html" title="Tree Node"><span class="bold"><strong>Tree Node</strong></span></a> concept.
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Pointer type
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">pointer</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Defined by the <a class="link" href="../concepts/tree_node.html" title="Tree Node"><span class="bold"><strong>Tree Node</strong></span></a> concept.
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Pointer-to-const type
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">const_pointer</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Defined by the <a class="link" href="../concepts/tree_node.html" title="Tree Node"><span class="bold"><strong>Tree Node</strong></span></a> concept.
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Child iterator type
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">child_iterator</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Defined by the <a class="link" href="../concepts/raci_tree_node.html" title="Random Access Child Iterator Tree Node"><span class="bold"><strong>Random Access Child Iterator Tree Node</strong></span></a>
+                    concept.
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Immutable child iterator type
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">const_child_iterator</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Defined by the <a class="link" href="../concepts/raci_tree_node.html" title="Random Access Child Iterator Tree Node"><span class="bold"><strong>Random Access Child Iterator Tree Node</strong></span></a>
+                    concept.
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Node creation with data
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">static</span> <span class="identifier">pointer</span>
+                    <span class="identifier">create</span><span class="special">(</span><span class="identifier">data_type</span> <span class="keyword">const</span><span class="special">&);</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Creates a <code class="computeroutput"><span class="identifier">simple_node</span></code>
+                    object with the specified data and returns a pointer to it.
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Node creation
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">static</span> <span class="identifier">pointer</span>
+                    <span class="identifier">create</span><span class="special">();</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Creates a <code class="computeroutput"><span class="identifier">simple_node</span></code>
+                    object and returns a pointer to it.
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Node copy creation
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">static</span> <span class="identifier">pointer</span>
+                    <span class="identifier">create_copy</span><span class="special">(</span><span class="identifier">const_pointer</span> <span class="keyword">const</span><span class="special">&);</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Creates a deep copy of the specified node. Returns a pointer
+                    to the new node.
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Data access
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">data_type</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">get_data</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Defined by the <a class="link" href="../concepts/tree_node.html" title="Tree Node"><span class="bold"><strong>Tree Node</strong></span></a> concept.
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Data access
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">data_type</span><span class="special">&</span>
+                    <span class="identifier">get_data</span><span class="special">();</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Defined by the <a class="link" href="../concepts/tree_node.html" title="Tree Node"><span class="bold"><strong>Tree Node</strong></span></a> concept.
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Parent access
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">const_pointer</span> <span class="identifier">get_parent</span><span class="special">()</span>
+                    <span class="keyword">const</span><span class="special">;</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Defined by the <a class="link" href="../concepts/tree_node.html" title="Tree Node"><span class="bold"><strong>Tree Node</strong></span></a> concept.
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Parent access
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">pointer</span> <span class="identifier">get_parent</span><span class="special">();</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Defined by the <a class="link" href="../concepts/tree_node.html" title="Tree Node"><span class="bold"><strong>Tree Node</strong></span></a> concept.
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Child creation with data
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">pointer</span> <span class="identifier">add_child</span><span class="special">(</span><span class="identifier">data_type</span>
+                    <span class="keyword">const</span><span class="special">&);</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Defined by the <a class="link" href="../concepts/raci_tree_node.html" title="Random Access Child Iterator Tree Node"><span class="bold"><strong>Random Access Child Iterator Tree Node</strong></span></a>
+                    concept.
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Child creation
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">pointer</span> <span class="identifier">add_child</span><span class="special">();</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Defined by the <a class="link" href="../concepts/raci_tree_node.html" title="Random Access Child Iterator Tree Node"><span class="bold"><strong>Random Access Child Iterator Tree Node</strong></span></a>
+                    concept.
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Child copy creation
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">pointer</span> <span class="identifier">add_child</span><span class="special">(</span><span class="identifier">const_pointer</span>
+                    <span class="keyword">const</span><span class="special">&);</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Defined by the <a class="link" href="../concepts/raci_tree_node.html" title="Random Access Child Iterator Tree Node"><span class="bold"><strong>Random Access Child Iterator Tree Node</strong></span></a>
+                    concept.
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Children range begin access
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">const_child_iterator</span>
+                    <span class="identifier">get_child_begin</span><span class="special">()</span>
+                    <span class="keyword">const</span><span class="special">;</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Defined by the <a class="link" href="../concepts/tree_node.html" title="Tree Node"><span class="bold"><strong>Tree Node</strong></span></a> concept.
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Children range begin access
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">child_iterator</span> <span class="identifier">get_child_begin</span><span class="special">();</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Defined by the <a class="link" href="../concepts/tree_node.html" title="Tree Node"><span class="bold"><strong>Tree Node</strong></span></a> concept.
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Children range past-the-end access
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">const_child_iterator</span>
+                    <span class="identifier">get_child_end</span><span class="special">()</span>
+                    <span class="keyword">const</span><span class="special">;</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Defined by the <a class="link" href="../concepts/tree_node.html" title="Tree Node"><span class="bold"><strong>Tree Node</strong></span></a> concept.
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Children range past-the-end access
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">child_iterator</span> <span class="identifier">get_child_end</span><span class="special">();</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Defined by the <a class="link" href="../concepts/tree_node.html" title="Tree Node"><span class="bold"><strong>Tree Node</strong></span></a> concept.
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Remove all children
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">void</span> <span class="identifier">remove_all_children</span><span class="special">();</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Defined by the <a class="link" href="../concepts/tree_node.html" title="Tree Node"><span class="bold"><strong>Tree Node</strong></span></a> concept.
+                  </p>
+                </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.simple_node.example"></a><a class="link" href="simple_node.html#tree_node.reference.simple_node.example" title="Example">Example</a>
+</h4></div></div></div>
+<p>
+          <example/simple_node.cpp>
+        </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 © 2011 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="raw_node.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="raw_associative_node.html"><img src="../../images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/traversal_state.html
==============================================================================
--- (empty file)
+++ sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/traversal_state.html	2011-09-23 22:11:39 EDT (Fri, 23 Sep 2011)
@@ -0,0 +1,85 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>traversal_state</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. tree_node 0.1">
+<link rel="up" href="../reference.html" title="Reference">
+<link rel="prev" href="depth_first_iterator.html" title="depth_first_iterator">
+</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="depth_first_iterator.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="tree_node.reference.traversal_state"></a><a class="link" href="traversal_state.html" title="traversal_state"><code class="computeroutput"><span class="identifier">traversal_state</span></code></a>
+</h3></div></div></div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.traversal_state.synopsis"></a><a class="link" href="traversal_state.html#tree_node.reference.traversal_state.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">namespace</span> <span class="identifier">tree_node</span> <span class="special">{</span>
+
+    <span class="keyword">enum</span> <span class="identifier">traversal_state</span>
+    <span class="special">{</span>
+        <span class="identifier">no_traversal</span>
+      <span class="special">,</span> <span class="identifier">pre_order_traversal</span>
+      <span class="special">,</span> <span class="identifier">post_order_traversal</span>
+      <span class="special">,</span> <span class="identifier">breadth_first_traversal</span>
+    <span class="special">};</span>
+<span class="special">}}</span>  <span class="comment">// namespace boost::tree_node
+</span></pre>
+<p>
+        </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.traversal_state.description"></a><a class="link" href="traversal_state.html#tree_node.reference.traversal_state.description" title="Description">Description</a>
+</h4></div></div></div>
+<p>
+          This enumeration type is the return type of the dereferenceability expression
+          defined by each iterator type that this library provides. The <code class="computeroutput"><span class="identifier">no_traversal</span></code> value corresponds to <code class="computeroutput"><span class="keyword">false</span></code> in a boolean context, enabling the
+          iterator types to fulfill their runtime requirements for dereferenceability.
+          The <code class="computeroutput"><span class="identifier">pre_order_traversal</span></code>
+          and <code class="computeroutput"><span class="identifier">post_order_traversal</span></code>
+          values are significant because the <a class="link" href="depth_first_iterator.html" title="depth_first_iterator"><code class="computeroutput"><span class="identifier">depth_first_iterator</span></code></a> traverses
+          each node twice, so algorithms must be able to distinguish which state
+          the iterator is in when it traverses a tree node. The <code class="computeroutput"><span class="identifier">breadth_first_traversal</span></code>
+          value is defined for completeness.
+        </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.traversal_state.definition"></a><a class="link" href="traversal_state.html#tree_node.reference.traversal_state.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/tree_node/traversal_state.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 © 2011 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="depth_first_iterator.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/tree_node/libs/tree_node/doc/ref_breadth_first_iterator.qbk
==============================================================================
--- (empty file)
+++ sandbox/tree_node/libs/tree_node/doc/ref_breadth_first_iterator.qbk	2011-09-23 22:11:39 EDT (Fri, 23 Sep 2011)
@@ -0,0 +1,224 @@
+[/=============================================================================
+    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:breadth_first_iterator `breadth_first_iterator`]
+
+[section Synopsis]
+[reference__breadth_first_iterator]
+[endsect]
+
+[section Description]
+This iterator traverses the specified root node and all its descendants in
+breadth-first fashion, e.g. given the following tree representation:
+
+``
+      A
+      |
+  C---+---B
+  |       |
++-+-+   +-+-+
+|   |   |   |
+D   E   F   G
+``
+
+If this iterator is a __Full_Tree_Node_Iterator__, then it will traverse the
+tree nodes in the following order:
+
+``
+A C B D E F G
+``
+
+If this iterator is a __Tree_Node_Descendant_Iterator__, then it will traverse
+the tree nodes in the following order:
+
+``
+C B D E F G
+``
+[endsect]
+
+[section:definition Where defined]
+``
+#include <__boost_tree_node_breadth_first_iterator_hpp__>
+``
+[endsect]
+
+[section:tpl_param Template Parameters]
+[table
+    [[Parameter][Description][Requirements][Default]]
+    [
+        [`NodePointer`]
+        [The type of a pointer to a tree node.]
+        [
+            It must model the __Trivial_Iterator__ concept, and its value type
+            must model the __Tree_Node__ concept.
+        ]
+        []
+    ]
+    [
+        [`MimicsChildIterator`]
+        [
+            The type that determines whether this `breadth_first_iterator` will
+            iterate only through the descendants of a node or will also include
+            the node in its traversal.
+        ]
+        [It must model the __Boolean_Integral_Constant__ concept.]
+        []
+    ]
+]
+[endsect]
+
+[section:model_of Model of]
+
+  * __Full_Tree_Node_Iterator__ if `MimicsChildIterator::value` is `false`
+  * __Tree_Node_Descendant_Iterator__ if `MimicsChildIterator::value` is `true`
+  * __Default_Constructible__
+  * __Copy_Constructible__
+  * __Assignable__
+
+[endsect]
+
+[section:public_bases Public Base Classes]
+None.
+[endsect]
+
+[section Members]
+[table
+    [[Name][Expression][Where defined]]
+    [
+        [Value type]
+        [`value_type`]
+        [__Tree_Node_Iterator__]
+    ]
+    [
+        [Reference type]
+        [`reference`]
+        [__Forward_Iterator__]
+    ]
+    [
+        [Pointer type]
+        [`pointer`]
+        [__Forward_Iterator__]
+    ]
+    [
+        [Distance type]
+        [`distance`]
+        [__Forward_Iterator__]
+    ]
+    [
+        [Iterator category]
+        [`iterator_category`]
+        [__Forward_Iterator__]
+    ]
+    [
+        [Default constructor]
+        [`breadth_first_iterator();`]
+        [__Default_Constructible__]
+    ]
+    [
+        [Constructor from im/mutable node]
+        [`breadth_first_iterator(NodePointer const&);`]
+        [__Tree_Node_Iterator__]
+    ]
+    [
+        [Conversion constructor]
+        [``
+            template <typename NP, typename MCI>
+            breadth_first_iterator(breadth_first_iterator<NP,MCI> const&);
+        ``]
+        [`breadth_first_iterator`]
+    ]
+    [
+        [Copy constructor]
+        [`breadth_first_iterator(breadth_first_iterator const&);`]
+        [__Copy_Constructible__]
+    ]
+    [
+        [Assignment operator]
+        [`breadth_first_iterator& operator=(breadth_first_iterator const&);`]
+        [__Assignable__]
+    ]
+    [
+        [Dereference operator]
+        [`reference operator*() const;`]
+        [__Forward_Iterator__]
+    ]
+    [
+        [Indirection operator]
+        [`pointer operator->() const;`]
+        [__Forward_Iterator__]
+    ]
+    [
+        [Pre-increment operator]
+        [`breadth_first_iterator& operator++();`]
+        [__Forward_Iterator__]
+    ]
+    [
+        [Post-increment operator]
+        [`breadth_first_iterator operator++(int);`]
+        [__Forward_Iterator__]
+    ]
+    [
+        [Traversal state conversion operator]
+        [`operator _traversal_state_() const;`]
+        [__Tree_Node_Iterator__]
+    ]
+]
+[endsect] [/ Members]
+
+[section:non_members Non-members]
+[table
+    [[Name][Expression][Description]]
+    [
+        [Iterator creation]
+        [[reference__make_breadth_first_iterator]]
+        [
+            Constructs and returns a `breadth_first_iterator` that will iterate
+            through the specified node and its descendants.
+        ]
+    ]
+    [
+        [Descendant iterator creation]
+        [[reference__make_breadth_first_descendant_iterator]]
+        [
+            Constructs and returns a `breadth_first_iterator` that will iterate
+            through the descendants of the specified node.
+        ]
+    ]
+    [
+        [Iteration]
+        [[reference__breadth_first_iterate]]
+        [
+            Iterates through the specified node and its descendants in
+            breadth-first fashion, passing each node pointer dereferenced to
+            the specified __Unary_Function__ object.
+        ]
+    ]
+    [
+        [Descendant iteration]
+        [[reference__breadth_first_iterate_descendants]]
+        [
+            Iterates through the descendants of the specified node in
+            breadth-first fashion, passing each element dereferenced to
+            the specified __Unary_Function__ object.
+        ]
+    ]
+    [
+        [Equality]
+        [[reference__breadth_first_iterator__operator_equals]]
+        [Defined by the __Input_Iterator__ concept.]
+    ]
+    [
+        [Inequality]
+        [[reference__breadth_first_iterator__operator_not_equal]]
+        [Defined by the __Input_Iterator__ concept.]
+    ]
+]
+[endsect] [/ Non-members]
+
+[endsect] [/ breadth_first_iterator]
+
Added: sandbox/tree_node/libs/tree_node/doc/ref_depth_first_iterator.qbk
==============================================================================
--- (empty file)
+++ sandbox/tree_node/libs/tree_node/doc/ref_depth_first_iterator.qbk	2011-09-23 22:11:39 EDT (Fri, 23 Sep 2011)
@@ -0,0 +1,299 @@
+[/=============================================================================
+    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:depth_first_iterator `depth_first_iterator`]
+
+[section Synopsis]
+[reference__depth_first_iterator]
+[endsect]
+
+[section Description]
+This iterator traverses the specified root node and all its descendants in
+depth-first fashion, e.g. given the following tree representation:
+
+``
+      A
+      |
+  C---+---B
+  |       |
++-+-+   +-+-+
+|   |   |   |
+D   E   F   G
+``
+
+If this iterator is a __Full_Tree_Node_Iterator__, then it will traverse the
+tree nodes in the following order:
+
+``
+A  pre_order_traversal
+C  pre_order_traversal
+D  pre_order_traversal
+D  post_order_traversal
+E  pre_order_traversal
+E  post_order_traversal
+C  post_order_traversal
+B  pre_order_traversal
+F  pre_order_traversal
+F  post_order_traversal
+G  pre_order_traversal
+G  post_order_traversal
+B  post_order_traversal
+A  post_order_traversal
+``
+
+If this iterator is a __Tree_Node_Descendant_Iterator__, then it will traverse
+the tree nodes in the following order:
+
+``
+C  pre_order_traversal
+D  pre_order_traversal
+D  post_order_traversal
+E  pre_order_traversal
+E  post_order_traversal
+C  post_order_traversal
+B  pre_order_traversal
+F  pre_order_traversal
+F  post_order_traversal
+G  pre_order_traversal
+G  post_order_traversal
+B  post_order_traversal
+``
+
+The traversal state conversion operator of this iterator will yield each value
+in the column on the right at the appropriate iteration.
+
+This iterator is ideal for algorithms that need to perform both preprocessing
+and postprocessing of a tree node, e.g. the copy constructors of the
+__raw_node__ and __raw_associative_node__ implementations.
+[endsect]
+
+[section:definition Where defined]
+``
+#include <__boost_tree_node_depth_first_iterator_hpp__>
+``
+[endsect]
+
+[section:tpl_param Template Parameters]
+[table
+    [[Parameter][Description][Requirements][Default]]
+    [
+        [`NodePointer`]
+        [The type of a pointer to a tree node.]
+        [
+            It must model the __Trivial_Iterator__ concept, and its value type
+            must model the __Tree_Node__ concept.
+        ]
+        []
+    ]
+    [
+        [`MimicsChildIterator`]
+        [
+            The type that determines whether this `depth_first_iterator` will
+            iterate only through the descendants of a node or will also include
+            the node in its traversal.
+        ]
+        [It must model the __Boolean_Integral_Constant__ concept.]
+        []
+    ]
+]
+[endsect]
+
+[section:model_of Model of]
+
+  * __Full_Tree_Node_Iterator__ if `MimicsChildIterator::value` is `false`
+  * __Tree_Node_Descendant_Iterator__ if `MimicsChildIterator::value` is `true`
+  * __Default_Constructible__
+  * __Copy_Constructible__
+  * __Assignable__
+
+[endsect]
+
+[section:public_bases Public Base Classes]
+None.
+[endsect]
+
+[section Members]
+[table
+    [[Name][Expression][Description]]
+    [
+        [Value type]
+        [`value_type`]
+        [Defined in the __Tree_Node_Iterator__ concept.]
+    ]
+    [
+        [Reference type]
+        [`reference`]
+        [Defined in the __Forward_Iterator__ concept.]
+    ]
+    [
+        [Pointer type]
+        [`pointer`]
+        [Defined in the __Forward_Iterator__ concept.]
+    ]
+    [
+        [Distance type]
+        [`distance`]
+        [Defined in the __Forward_Iterator__ concept.]
+    ]
+    [
+        [Iterator category]
+        [`iterator_category`]
+        [Defined in the __Forward_Iterator__ concept.]
+    ]
+    [
+        [Default constructor]
+        [`depth_first_iterator();`]
+        [Defined in the __Default_Constructible__ concept.]
+    ]
+    [
+        [Constructor from im/mutable node]
+        [`depth_first_iterator(NodePointer const&);`]
+        [Defined in the __Tree_Node_Iterator__ concept.]
+    ]
+    [
+        [Conversion constructor]
+        [``
+            template <typename NP, typename MCI>
+            depth_first_iterator(depth_first_iterator<NP,MCI> const&);
+        ``]
+        [
+            Constructs a `depth_first_iterator` object that will point to the
+            same element that the specified iterator points to.
+        ]
+    ]
+    [
+        [Copy constructor]
+        [`depth_first_iterator(depth_first_iterator const&);`]
+        [Defined in the __Copy_Constructible__ concept.]
+    ]
+    [
+        [Assignment operator]
+        [`depth_first_iterator& operator=(depth_first_iterator const&);`]
+        [Defined in the __Assignable__ concept.]
+    ]
+    [
+        [Dereference operator]
+        [`reference operator*() const;`]
+        [Defined in the __Forward_Iterator__ concept.]
+    ]
+    [
+        [Indirection operator]
+        [`pointer operator->() const;`]
+        [Defined in the __Forward_Iterator__ concept.]
+    ]
+    [
+        [Pre-increment operator]
+        [`depth_first_iterator& operator++();`]
+        [Defined in the __Forward_Iterator__ concept.]
+    ]
+    [
+        [Post-increment operator]
+        [`depth_first_iterator operator++(int);`]
+        [Defined in the __Forward_Iterator__ concept.]
+    ]
+    [
+        [Traversal state conversion operator]
+        [`operator _traversal_state_() const;`]
+        [
+            Returns `pre_order_traversal` if this iterator has not yet examined
+            the children of the current node, `post_order_traversal` if this
+            iterator has examined all of the children of the current node, or
+            `no_traversal` if this iterator is not dereferenceable.
+        ]
+    ]
+]
+[endsect] [/ Members]
+
+[section:non_members Non-members]
+[table
+    [[Name][Expression][Description]]
+    [
+        [Iterator creation]
+        [``
+            template <typename NodePointer>
+            depth_first_iterator<NodePointer,_mpl_false_>
+                make_depth_first_iterator(NodePointer const& node);
+        ``]
+        [
+            Constructs and returns a `depth_first_iterator` that will iterate
+            through the specified node and its descendants.
+        ]
+    ]
+    [
+        [Descendant iterator creation]
+        [``
+            template <typename NodePointer>
+            depth_first_iterator<NodePointer,_mpl_true_>
+                make_depth_first_descendant_iterator(NodePointer const& node);
+        ``]
+        [
+            Constructs and returns a `depth_first_iterator` that will iterate
+            through the descendants of the specified node.
+        ]
+    ]
+    [
+        [Iteration]
+        [``
+            template <typename NodePointer, typename UnaryFunction>
+            void
+                depth_first_iterate(
+                    NodePointer const& node
+                  , UnaryFunction function
+                );
+        ``]
+        [
+            Iterates through the specified node and its descendants in
+            depth-first fashion, passing each node pointer dereferenced to
+            the specified __Unary_Function__ object.
+        ]
+    ]
+    [
+        [Descendant iteration]
+        [``
+            template <typename NodePointer, typename UnaryFunction>
+            void
+                depth_first_iterate_descendants(
+                    NodePointer const& node
+                  , UnaryFunction function
+                );
+        ``]
+        [
+            Iterates through the descendants of the specified node in
+            depth-first fashion, passing each element dereferenced to
+            the specified __Unary_Function__ object.
+        ]
+    ]
+    [
+        [Equality]
+        [``
+            template <typename NP1, typename NP2, typename MCI1, typename MCI2>
+            typename _enable_if_<_mpl_equal_to_<MCI1,MCI2>,bool>::type
+                operator==(
+                    depth_first_iterator<NP1,MCI1> const&
+                  , depth_first_iterator<NP2,MCI2> const&
+                );
+        ``]
+        [Defined by the __Input_Iterator__ concept.]
+    ]
+    [
+        [Inequality]
+        [``
+            template <typename NP1, typename NP2, typename MCI1, typename MCI2>
+            typename _enable_if_<_mpl_equal_to_<MCI1,MCI2>,bool>::type
+                operator!=(
+                    depth_first_iterator<NP1,MCI1> const&
+                  , depth_first_iterator<NP2,MCI2> const&
+                );
+        ``]
+        [Defined by the __Input_Iterator__ concept.]
+    ]
+]
+[endsect] [/ Non-members]
+
+[endsect] [/ depth_first_iterator]
+
Added: sandbox/tree_node/libs/tree_node/doc/ref_post_order_iterator.qbk
==============================================================================
--- (empty file)
+++ sandbox/tree_node/libs/tree_node/doc/ref_post_order_iterator.qbk	2011-09-23 22:11:39 EDT (Fri, 23 Sep 2011)
@@ -0,0 +1,224 @@
+[/=============================================================================
+    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:post_order_iterator `post_order_iterator`]
+
+[section Synopsis]
+[reference__post_order_iterator]
+[endsect]
+
+[section Description]
+This iterator traverses the specified root node and all its descendants in
+post-order fashion, e.g. given the following tree representation:
+
+``
+      A
+      |
+  C---+---B
+  |       |
++-+-+   +-+-+
+|   |   |   |
+D   E   F   G
+``
+
+If this iterator is a __Full_Tree_Node_Iterator__, then it will traverse the
+tree nodes in the following order:
+
+``
+D E C F G B A
+``
+
+If this iterator is a __Tree_Node_Descendant_Iterator__, then it will traverse
+the tree nodes in the following order:
+
+``
+D E C F G B
+``
+[endsect]
+
+[section:definition Where defined]
+``
+#include <__boost_tree_node_post_order_iterator_hpp__>
+``
+[endsect]
+
+[section:tpl_param Template Parameters]
+[table
+    [[Parameter][Description][Requirements][Default]]
+    [
+        [`NodePointer`]
+        [The type of a pointer to a tree node.]
+        [
+            It must model the __Trivial_Iterator__ concept, and its value type
+            must model the __Tree_Node__ concept.
+        ]
+        []
+    ]
+    [
+        [`MimicsChildIterator`]
+        [
+            The type that determines whether this `post_order_iterator` will
+            iterate only through the descendants of a node or will also include
+            the node in its traversal.
+        ]
+        [It must model the __Boolean_Integral_Constant__ concept.]
+        []
+    ]
+]
+[endsect]
+
+[section:model_of Model of]
+
+  * __Full_Tree_Node_Iterator__ if `MimicsChildIterator::value` is `false`
+  * __Tree_Node_Descendant_Iterator__ if `MimicsChildIterator::value` is `true`
+  * __Default_Constructible__
+  * __Copy_Constructible__
+  * __Assignable__
+
+[endsect]
+
+[section:public_bases Public Base Classes]
+None.
+[endsect]
+
+[section Members]
+[table
+    [[Name][Expression][Where defined]]
+    [
+        [Value type]
+        [`value_type`]
+        [__Tree_Node_Iterator__]
+    ]
+    [
+        [Reference type]
+        [`reference`]
+        [__Forward_Iterator__]
+    ]
+    [
+        [Pointer type]
+        [`pointer`]
+        [__Forward_Iterator__]
+    ]
+    [
+        [Distance type]
+        [`distance`]
+        [__Forward_Iterator__]
+    ]
+    [
+        [Iterator category]
+        [`iterator_category`]
+        [__Forward_Iterator__]
+    ]
+    [
+        [Default constructor]
+        [`post_order_iterator();`]
+        [__Default_Constructible__]
+    ]
+    [
+        [Constructor from im/mutable node]
+        [`post_order_iterator(NodePointer const&);`]
+        [__Tree_Node_Iterator__]
+    ]
+    [
+        [Conversion constructor]
+        [``
+            template <typename NP, typename MCI>
+            post_order_iterator(post_order_iterator<NP,MCI> const&);
+        ``]
+        [`post_order_iterator`]
+    ]
+    [
+        [Copy constructor]
+        [`post_order_iterator(post_order_iterator const&);`]
+        [__Copy_Constructible__]
+    ]
+    [
+        [Assignment operator]
+        [`post_order_iterator& operator=(post_order_iterator const&);`]
+        [__Assignable__]
+    ]
+    [
+        [Dereference operator]
+        [`reference operator*() const;`]
+        [__Forward_Iterator__]
+    ]
+    [
+        [Indirection operator]
+        [`pointer operator->() const;`]
+        [__Forward_Iterator__]
+    ]
+    [
+        [Pre-increment operator]
+        [`post_order_iterator& operator++();`]
+        [__Forward_Iterator__]
+    ]
+    [
+        [Post-increment operator]
+        [`post_order_iterator operator++(int);`]
+        [__Forward_Iterator__]
+    ]
+    [
+        [Traversal state conversion operator]
+        [`operator _traversal_state_() const;`]
+        [__Tree_Node_Iterator__]
+    ]
+]
+[endsect] [/ Members]
+
+[section:non_members Non-members]
+[table
+    [[Name][Expression][Description]]
+    [
+        [Iterator creation]
+        [[reference__make_post_order_iterator]]
+        [
+            Constructs and returns a `post_order_iterator` that will iterate
+            through the specified node and its descendants.
+        ]
+    ]
+    [
+        [Descendant iterator creation]
+        [[reference__make_post_order_descendant_iterator]]
+        [
+            Constructs and returns a `post_order_iterator` that will iterate
+            through the descendants of the specified node.
+        ]
+    ]
+    [
+        [Iteration]
+        [[reference__post_order_iterate]]
+        [
+            Iterates through the specified node and its descendants in
+            post-order fashion, passing each node pointer dereferenced to
+            the specified __Unary_Function__ object.
+        ]
+    ]
+    [
+        [Descendant iteration]
+        [[reference__post_order_iterate_descendants]]
+        [
+            Iterates through the descendants of the specified node in
+            post-order fashion, passing each element dereferenced to
+            the specified __Unary_Function__ object.
+        ]
+    ]
+    [
+        [Equality]
+        [[reference__post_order_iterator__operator_equals]]
+        [Defined by the __Input_Iterator__ concept.]
+    ]
+    [
+        [Inequality]
+        [[reference__post_order_iterator__operator_not_equal]]
+        [Defined by the __Input_Iterator__ concept.]
+    ]
+]
+[endsect] [/ Non-members]
+
+[endsect] [/ post_order_iterator]
+
Added: sandbox/tree_node/libs/tree_node/doc/ref_pre_order_iterator.qbk
==============================================================================
--- (empty file)
+++ sandbox/tree_node/libs/tree_node/doc/ref_pre_order_iterator.qbk	2011-09-23 22:11:39 EDT (Fri, 23 Sep 2011)
@@ -0,0 +1,224 @@
+[/=============================================================================
+    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:pre_order_iterator `pre_order_iterator`]
+
+[section Synopsis]
+[reference__pre_order_iterator]
+[endsect]
+
+[section Description]
+This iterator traverses the specified root node and all its descendants in
+pre-order fashion, e.g. given the following tree representation:
+
+``
+      A
+      |
+  C---+---B
+  |       |
++-+-+   +-+-+
+|   |   |   |
+D   E   F   G
+``
+
+If this iterator is a __Full_Tree_Node_Iterator__, then it will traverse the
+tree nodes in the following order:
+
+``
+A C D E B F G
+``
+
+If this iterator is a __Tree_Node_Descendant_Iterator__, then it will traverse
+the tree nodes in the following order:
+
+``
+C D E B F G
+``
+[endsect]
+
+[section:definition Where defined]
+``
+#include <__boost_tree_node_pre_order_iterator_hpp__>
+``
+[endsect]
+
+[section:tpl_param Template Parameters]
+[table
+    [[Parameter][Description][Requirements][Default]]
+    [
+        [`NodePointer`]
+        [The type of a pointer to a tree node.]
+        [
+            It must model the __Trivial_Iterator__ concept, and its value type
+            must model the __Tree_Node__ concept.
+        ]
+        []
+    ]
+    [
+        [`MimicsChildIterator`]
+        [
+            The type that determines whether this `pre_order_iterator` will
+            iterate only through the descendants of a node or will also include
+            the node in its traversal.
+        ]
+        [It must model the __Boolean_Integral_Constant__ concept.]
+        []
+    ]
+]
+[endsect]
+
+[section:model_of Model of]
+
+  * __Full_Tree_Node_Iterator__ if `MimicsChildIterator::value` is `false`
+  * __Tree_Node_Descendant_Iterator__ if `MimicsChildIterator::value` is `true`
+  * __Default_Constructible__
+  * __Copy_Constructible__
+  * __Assignable__
+
+[endsect]
+
+[section:public_bases Public Base Classes]
+None.
+[endsect]
+
+[section Members]
+[table
+    [[Name][Expression][Where defined]]
+    [
+        [Value type]
+        [`value_type`]
+        [__Tree_Node_Iterator__]
+    ]
+    [
+        [Reference type]
+        [`reference`]
+        [__Forward_Iterator__]
+    ]
+    [
+        [Pointer type]
+        [`pointer`]
+        [__Forward_Iterator__]
+    ]
+    [
+        [Distance type]
+        [`distance`]
+        [__Forward_Iterator__]
+    ]
+    [
+        [Iterator category]
+        [`iterator_category`]
+        [__Forward_Iterator__]
+    ]
+    [
+        [Default constructor]
+        [`pre_order_iterator();`]
+        [__Default_Constructible__]
+    ]
+    [
+        [Constructor from im/mutable node]
+        [`pre_order_iterator(NodePointer const&);`]
+        [__Tree_Node_Iterator__]
+    ]
+    [
+        [Conversion constructor]
+        [``
+            template <typename NP, typename MCI>
+            pre_order_iterator(pre_order_iterator<NP,MCI> const&);
+        ``]
+        [`pre_order_iterator`]
+    ]
+    [
+        [Copy constructor]
+        [`pre_order_iterator(pre_order_iterator const&);`]
+        [__Copy_Constructible__]
+    ]
+    [
+        [Assignment operator]
+        [`pre_order_iterator& operator=(pre_order_iterator const&);`]
+        [__Assignable__]
+    ]
+    [
+        [Dereference operator]
+        [`reference operator*() const;`]
+        [__Forward_Iterator__]
+    ]
+    [
+        [Indirection operator]
+        [`pointer operator->() const;`]
+        [__Forward_Iterator__]
+    ]
+    [
+        [Pre-increment operator]
+        [`pre_order_iterator& operator++();`]
+        [__Forward_Iterator__]
+    ]
+    [
+        [Post-increment operator]
+        [`pre_order_iterator operator++(int);`]
+        [__Forward_Iterator__]
+    ]
+    [
+        [Traversal state conversion operator]
+        [`operator _traversal_state_() const;`]
+        [__Tree_Node_Iterator__]
+    ]
+]
+[endsect] [/ Members]
+
+[section:non_members Non-members]
+[table
+    [[Name][Expression][Description]]
+    [
+        [Iterator creation]
+        [[reference__make_pre_order_iterator]]
+        [
+            Constructs and returns a `pre_order_iterator` that will iterate
+            through the specified node and its descendants.
+        ]
+    ]
+    [
+        [Descendant iterator creation]
+        [[reference__make_pre_order_descendant_iterator]]
+        [
+            Constructs and returns a `pre_order_iterator` that will iterate
+            through the descendants of the specified node.
+        ]
+    ]
+    [
+        [Iteration]
+        [[reference__pre_order_iterate]]
+        [
+            Iterates through the specified node and its descendants in
+            pre-order fashion, passing each node pointer dereferenced to
+            the specified __Unary_Function__ object.
+        ]
+    ]
+    [
+        [Descendant iteration]
+        [[reference__pre_order_iterate_descendants]]
+        [
+            Iterates through the descendants of the specified node in
+            pre-order fashion, passing each element dereferenced to
+            the specified __Unary_Function__ object.
+        ]
+    ]
+    [
+        [Equality]
+        [[reference__pre_order_iterator__operator_equals]]
+        [Defined by the __Input_Iterator__ concept.]
+    ]
+    [
+        [Inequality]
+        [[reference__pre_order_iterator__operator_not_equal]]
+        [Defined by the __Input_Iterator__ concept.]
+    ]
+]
+[endsect] [/ Non-members]
+
+[endsect] [/ pre_order_iterator]
+
Added: sandbox/tree_node/libs/tree_node/doc/ref_raw_associative_node.qbk
==============================================================================
--- (empty file)
+++ sandbox/tree_node/libs/tree_node/doc/ref_raw_associative_node.qbk	2011-09-23 22:11:39 EDT (Fri, 23 Sep 2011)
@@ -0,0 +1,232 @@
+[/=============================================================================
+    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:raw_associative_node `raw_associative_node`]
+
+[section Synopsis]
+[reference__raw_associative_node]
+[endsect]
+
+[section Description]
+This class template is suitable for classes or algorithms that need to map keys
+to child nodes in a tree node data structure that does not need to be exposed
+to external code.  Objects of this type can be stored by value, and their
+children can be accessed by their associated keys for fast lookup.
+
+[important
+    This component depends on __Boost_Utility_ContainerGen__, which is not yet
+    a part of Boost.  For now, you must perform a Subversion checkout from the
+    __SVN_Trac__.
+]
+[endsect]
+
+[section:definition Where defined]
+``
+#include <__boost_tree_node_raw_associative_node_hpp__>
+``
+[endsect]
+
+[section:tpl_param Template Parameters]
+[table
+    [[Parameter][Description][Requirements][Default]]
+    [
+        [`Key`]
+        [
+            The type of a key object to be associated with a child of a
+            `raw_associative_node`.
+        ]
+        []
+        []
+    ]
+    [
+        [`Data`]
+        [The type of the object to be stored in a `raw_associative_node`.]
+        []
+        []
+    ]
+    [
+        [`AssociativeContainerSelector`]
+        [
+            The type that determines the internal map types whose mapped types
+            are the same as the pointer type.
+        ]
+        [
+            It must be a type for which __associative_container_gen__ returns
+            a valid container.
+        ]
+        [`mapS`]
+    ]
+]
+[endsect]
+
+[section:model_of Model of]
+
+  * __Associative_Tree_Node__
+  * __Default_Constructible__ if `Data` is __Default_Constructible__
+  * __Copy_Constructible__
+  * __Assignable__ if `Data` is __Assignable__
+
+[endsect]
+
+[section:public_bases Public Base Classes]
+None.
+[endsect]
+
+[section Members]
+[table
+    [[Name][Expression][Where defined]]
+    [
+        [Key type]
+        [`key_type`]
+        [__Tree_Node__]
+    ]
+    [
+        [Data type]
+        [`data_type`]
+        [__Tree_Node__]
+    ]
+    [
+        [Pointer type]
+        [`pointer`]
+        [__Tree_Node__]
+    ]
+    [
+        [Pointer-to-const type]
+        [`const_pointer`]
+        [__Tree_Node__]
+    ]
+    [
+        [Child iterator type]
+        [`child_iterator`]
+        [__Associative_Tree_Node__]
+    ]
+    [
+        [Immutable child iterator type]
+        [`const_child_iterator`]
+        [__Associative_Tree_Node__]
+    ]
+    [
+        [Default constructor]
+        [`raw_associative_node();`]
+        [__Default_Constructible__]
+    ]
+    [
+        [Constructor with data]
+        [`explicit raw_associative_node(data_type const&);`]
+        [`raw_associative_node`]
+    ]
+    [
+        [Copy constructor]
+        [`raw_associative_node(raw_associative_node const&);`]
+        [__Copy_Constructible__]
+    ]
+    [
+        [Assignment operator]
+        [`raw_associative_node& operator=(raw_associative_node const&);`]
+        [__Assignable__]
+    ]
+    [
+        [Data access]
+        [`data_type const& get_data() const;`]
+        [__Tree_Node__]
+    ]
+    [
+        [Data access]
+        [`data_type& get_data();`]
+        [__Tree_Node__]
+    ]
+    [
+        [Parent access]
+        [`const_pointer get_parent() const;`]
+        [__Tree_Node__]
+    ]
+    [
+        [Parent access]
+        [`pointer get_parent();`]
+        [__Tree_Node__]
+    ]
+    [
+        [Child creation with data]
+        [`pointer add_child(key_type const&, data_type const&);`]
+        [__Associative_Tree_Node__]
+    ]
+    [
+        [Child creation]
+        [`pointer add_child(key_type const&);`]
+        [__Associative_Tree_Node__]
+    ]
+    [
+        [Child copy creation]
+        [`pointer add_child(key_type const&, const_pointer const&);`]
+        [__Associative_Tree_Node__]
+    ]
+    [
+        [Children range begin access]
+        [`const_child_iterator get_child_begin() const;`]
+        [__Tree_Node__]
+    ]
+    [
+        [Children range begin access]
+        [`child_iterator get_child_begin();`]
+        [__Tree_Node__]
+    ]
+    [
+        [Children range past-the-end access]
+        [`const_child_iterator get_child_end() const;`]
+        [__Tree_Node__]
+    ]
+    [
+        [Children range past-the-end access]
+        [`child_iterator get_child_end();`]
+        [__Tree_Node__]
+    ]
+    [
+        [Child search]
+        [`const_child_iterator find_child(key_type const&) const;`]
+        [__Associative_Tree_Node__]
+    ]
+    [
+        [Child search]
+        [`child_iterator find_child(key_type const&);`]
+        [__Associative_Tree_Node__]
+    ]
+    [
+        [Child search range]
+        [
+            [^_std_pair_<Node::const_child_iterator,Node::const_child_iterator>
+            find_children(key_type const&) const;]
+        ]
+        [__Associative_Tree_Node__]
+    ]
+    [
+        [Child search range]
+        [
+            [^_std_pair_<Node::child_iterator,Node::child_iterator>
+            find_children(key_type const&);]
+        ]
+        [__Associative_Tree_Node__]
+    ]
+    [
+        [Remove children]
+        [`std::size_t remove_children(key_type const&);`]
+        [__Associative_Tree_Node__]
+    ]
+    [
+        [Remove all children]
+        [`void remove_all_children();`]
+        [__Tree_Node__]
+    ]
+]
+[endsect] [/ Members]
+
+[section Example]
+<__example_raw_associative_node_cpp__>
+[endsect]
+
+[endsect] [/ raw_associative_node]
+
Added: sandbox/tree_node/libs/tree_node/doc/ref_raw_node.qbk
==============================================================================
--- (empty file)
+++ sandbox/tree_node/libs/tree_node/doc/ref_raw_node.qbk	2011-09-23 22:11:39 EDT (Fri, 23 Sep 2011)
@@ -0,0 +1,169 @@
+[/=============================================================================
+    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:raw_node `raw_node`]
+
+[section Synopsis]
+[reference__raw_node]
+[endsect]
+
+[section Description]
+This class template is suitable for classes or algorithms that require a tree
+node data structure but do not need to expose it to external code.  Objects
+of this type can be stored by value, and their children can be accessed by
+offsetting the start of the range with a numerical index for fast lookup.
+[endsect]
+
+[section:definition Where defined]
+``
+#include <__boost_tree_node_raw_node_hpp__>
+``
+[endsect]
+
+[section:tpl_param Template Parameters]
+[table
+    [[Parameter][Description][Requirements][Default]]
+    [
+        [`T`]
+        [The type of the object to be stored in a `raw_node`.]
+        []
+        []
+    ]
+]
+[endsect]
+
+[section:model_of Model of]
+
+  * __Random_Access_Child_Iterator_Tree_Node__
+  * __Default_Constructible__ if `T` is __Default_Constructible__
+  * __Copy_Constructible__
+  * __Assignable__ if `T` is __Assignable__
+
+[endsect]
+
+[section:public_bases Public Base Classes]
+None.
+[endsect]
+
+[section Members]
+[table
+    [[Name][Expression][Where defined]]
+    [
+        [Data type]
+        [`data_type`]
+        [__Tree_Node__]
+    ]
+    [
+        [Pointer type]
+        [`pointer`]
+        [__Tree_Node__]
+    ]
+    [
+        [Pointer-to-const type]
+        [`const_pointer`]
+        [__Tree_Node__]
+    ]
+    [
+        [Child iterator type]
+        [`child_iterator`]
+        [__Random_Access_Child_Iterator_Tree_Node__]
+    ]
+    [
+        [Immutable child iterator type]
+        [`const_child_iterator`]
+        [__Random_Access_Child_Iterator_Tree_Node__]
+    ]
+    [
+        [Default constructor]
+        [`raw_node();`]
+        [__Default_Constructible__]
+    ]
+    [
+        [Constructor with data]
+        [`explicit raw_node(data_type const&);`]
+        [`raw_node`]
+    ]
+    [
+        [Copy constructor]
+        [`raw_node(raw_node const&);`]
+        [__Copy_Constructible__]
+    ]
+    [
+        [Assignment operator]
+        [`raw_node& operator=(raw_node const&);`]
+        [__Assignable__]
+    ]
+    [
+        [Data access]
+        [`data_type const& get_data() const;`]
+        [__Tree_Node__]
+    ]
+    [
+        [Data access]
+        [`data_type& get_data();`]
+        [__Tree_Node__]
+    ]
+    [
+        [Parent access]
+        [`const_pointer get_parent() const;`]
+        [__Tree_Node__]
+    ]
+    [
+        [Parent access]
+        [`pointer get_parent();`]
+        [__Tree_Node__]
+    ]
+    [
+        [Child creation with data]
+        [`pointer add_child(data_type const&);`]
+        [__Random_Access_Child_Iterator_Tree_Node__]
+    ]
+    [
+        [Child creation]
+        [`pointer add_child();`]
+        [__Random_Access_Child_Iterator_Tree_Node__]
+    ]
+    [
+        [Child copy creation]
+        [`pointer add_child(const_pointer const&);`]
+        [__Random_Access_Child_Iterator_Tree_Node__]
+    ]
+    [
+        [Children range begin access]
+        [`const_child_iterator get_child_begin() const;`]
+        [__Tree_Node__]
+    ]
+    [
+        [Children range begin access]
+        [`child_iterator get_child_begin();`]
+        [__Tree_Node__]
+    ]
+    [
+        [Children range past-the-end access]
+        [`const_child_iterator get_child_end() const;`]
+        [__Tree_Node__]
+    ]
+    [
+        [Children range past-the-end access]
+        [`child_iterator get_child_end();`]
+        [__Tree_Node__]
+    ]
+    [
+        [Remove all children]
+        [`void remove_all_children();`]
+        [__Tree_Node__]
+    ]
+]
+[endsect] [/ Members]
+
+[section Example]
+<__example_raw_node_cpp__>
+[endsect]
+
+[endsect] [/ raw_node]
+
Added: sandbox/tree_node/libs/tree_node/doc/ref_simple_associative_node.qbk
==============================================================================
--- (empty file)
+++ sandbox/tree_node/libs/tree_node/doc/ref_simple_associative_node.qbk	2011-09-23 22:11:39 EDT (Fri, 23 Sep 2011)
@@ -0,0 +1,233 @@
+[/=============================================================================
+    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:simple_associative_node `simple_associative_node`]
+
+[section Synopsis]
+[reference__simple_associative_node]
+[endsect]
+
+[section Description]
+This class template is suitable for classes or algorithms that need to map keys
+to child nodes in a tree node data structure that must be exposed to external
+code.  Objects of this type must be stored by
+`simple_associative_node::pointer` and can only be instantiated through
+the `static` creation methods that this class template provides.  Their
+children can be accessed by their associated keys for fast lookup.
+
+[important
+    This component depends on __Boost_Utility_ContainerGen__, which is not yet
+    a part of Boost.  For now, you must perform a Subversion checkout from the
+    __SVN_Trac__.
+]
+[endsect]
+
+[section:definition Where defined]
+``
+#include <__boost_tree_node_simple_associative_node_hpp__>
+``
+[endsect]
+
+[section:tpl_param Template Parameters]
+[table
+    [[Parameter][Description][Requirements][Default]]
+    [
+        [`Key`]
+        [
+            The type of a key object to be associated with a child of a
+            `raw_associative_node`.
+        ]
+        []
+        []
+    ]
+    [
+        [`Data`]
+        [The type of the object to be stored in a `simple_associative_node`.]
+        []
+        []
+    ]
+    [
+        [`AssociativeContainerSelector`]
+        [
+            The type that determines the internal map types whose mapped types
+            are the same as the pointer type.
+        ]
+        [
+            It must be a type for which __associative_container_gen__ returns
+            a valid container.
+        ]
+        [`mapS`]
+    ]
+]
+[endsect]
+
+[section:model_of Model of]
+__Associative_Tree_Node__
+[endsect]
+
+[section:public_bases Public Base Classes]
+__tr1_enable_shared_from_this__
+[endsect]
+
+[section Members]
+[table
+    [[Name][Expression][Description]]
+    [
+        [Data type]
+        [`data_type`]
+        [Defined by the __Tree_Node__ concept.]
+    ]
+    [
+        [Data type]
+        [`data_type`]
+        [Defined by the __Tree_Node__ concept.]
+    ]
+    [
+        [Pointer type]
+        [`pointer`]
+        [Defined by the __Tree_Node__ concept.]
+    ]
+    [
+        [Pointer-to-const type]
+        [`const_pointer`]
+        [Defined by the __Tree_Node__ concept.]
+    ]
+    [
+        [Child iterator type]
+        [`child_iterator`]
+        [Defined by the __Associative_Tree_Node__ concept.]
+    ]
+    [
+        [Immutable child iterator type]
+        [`const_child_iterator`]
+        [Defined by the __Associative_Tree_Node__ concept.]
+    ]
+    [
+        [Node creation with data]
+        [`static pointer create(data_type const&);`]
+        [
+            Creates a `simple_associative_node` object with the specified data
+            and returns a pointer to it.
+        ]
+    ]
+    [
+        [Node creation]
+        [`static pointer create();`]
+        [
+            Creates a `simple_associative_node` object and returns a pointer to
+            it.
+        ]
+    ]
+    [
+        [Node copy creation]
+        [`static pointer create_copy(const_pointer const&);`]
+        [
+            Creates a deep copy of the specified node.  Returns a pointer to
+            the new node.
+        ]
+    ]
+    [
+        [Data access]
+        [`data_type const& get_data() const;`]
+        [Defined by the __Tree_Node__ concept.]
+    ]
+    [
+        [Data access]
+        [`data_type& get_data();`]
+        [Defined by the __Tree_Node__ concept.]
+    ]
+    [
+        [Parent access]
+        [`const_pointer get_parent() const;`]
+        [Defined by the __Tree_Node__ concept.]
+    ]
+    [
+        [Parent access]
+        [`pointer get_parent();`]
+        [Defined by the __Tree_Node__ concept.]
+    ]
+    [
+        [Child creation with data]
+        [`pointer add_child(key_type const&, data_type const&);`]
+        [Defined by the __Associative_Tree_Node__ concept.]
+    ]
+    [
+        [Child creation]
+        [`pointer add_child(key_type const&);`]
+        [Defined by the __Associative_Tree_Node__ concept.]
+    ]
+    [
+        [Child copy creation]
+        [`pointer add_child(key_type const&, const_pointer const&);`]
+        [Defined by the __Associative_Tree_Node__ concept.]
+    ]
+    [
+        [Children range begin access]
+        [`const_child_iterator get_child_begin() const;`]
+        [Defined by the __Tree_Node__ concept.]
+    ]
+    [
+        [Children range begin access]
+        [`child_iterator get_child_begin();`]
+        [Defined by the __Tree_Node__ concept.]
+    ]
+    [
+        [Children range past-the-end access]
+        [`const_child_iterator get_child_end() const;`]
+        [Defined by the __Tree_Node__ concept.]
+    ]
+    [
+        [Children range past-the-end access]
+        [`child_iterator get_child_end();`]
+        [Defined by the __Tree_Node__ concept.]
+    ]
+    [
+        [Child search]
+        [`const_child_iterator find_child(key_type const&) const;`]
+        [Defined by the __Associative_Tree_Node__ concept.]
+    ]
+    [
+        [Child search]
+        [`child_iterator find_child(key_type const&);`]
+        [Defined by the __Associative_Tree_Node__ concept.]
+    ]
+    [
+        [Child search range]
+        [
+            [^_std_pair_<Node::const_child_iterator,Node::const_child_iterator>
+            find_children(key_type const&) const;]
+        ]
+        [Defined by the __Associative_Tree_Node__ concept.]
+    ]
+    [
+        [Child search range]
+        [
+            [^_std_pair_<Node::child_iterator,Node::child_iterator>
+            find_children(key_type const&);]
+        ]
+        [Defined by the __Associative_Tree_Node__ concept.]
+    ]
+    [
+        [Remove children]
+        [`std::size_t remove_children(key_type const&);`]
+        [Defined by the __Associative_Tree_Node__ concept.]
+    ]
+    [
+        [Remove all children]
+        [`void remove_all_children();`]
+        [Defined by the __Tree_Node__ concept.]
+    ]
+]
+[endsect] [/ Members]
+
+[section Example]
+<__example_simple_associative_node_cpp__>
+[endsect]
+
+[endsect] [/ simple_associative_node]
+
Added: sandbox/tree_node/libs/tree_node/doc/ref_simple_node.qbk
==============================================================================
--- (empty file)
+++ sandbox/tree_node/libs/tree_node/doc/ref_simple_node.qbk	2011-09-23 22:11:39 EDT (Fri, 23 Sep 2011)
@@ -0,0 +1,167 @@
+[/=============================================================================
+    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:simple_node `simple_node`]
+
+[section Synopsis]
+[reference__simple_node]
+[endsect]
+
+[section Description]
+This class template is suitable for classes or algorithms that require a tree
+node data structure that must be exposed to external code.  Objects of this
+type must be stored by `simple_node::pointer` and can only be instantiated
+through the `static` creation methods that this class template provides.  Their
+children can be accessed by offsetting the start of the range with a numerical
+index for fast lookup.
+[endsect]
+
+[section:definition Where defined]
+``
+#include <__boost_tree_node_simple_node_hpp__>
+``
+[endsect]
+
+[section:tpl_param Template Parameters]
+[table
+    [[Parameter][Description][Requirements][Default]]
+    [
+        [`T`]
+        [The type of the object to be stored in a `simple_node`.]
+        []
+        []
+    ]
+]
+[endsect]
+
+[section:model_of Model of]
+__Random_Access_Child_Iterator_Tree_Node__
+[endsect]
+
+[section:public_bases Public Base Classes]
+__tr1_enable_shared_from_this__
+[endsect]
+
+[section Members]
+[table
+    [[Name][Expression][Description]]
+    [
+        [Data type]
+        [`data_type`]
+        [Defined by the __Tree_Node__ concept.]
+    ]
+    [
+        [Pointer type]
+        [`pointer`]
+        [Defined by the __Tree_Node__ concept.]
+    ]
+    [
+        [Pointer-to-const type]
+        [`const_pointer`]
+        [Defined by the __Tree_Node__ concept.]
+    ]
+    [
+        [Child iterator type]
+        [`child_iterator`]
+        [Defined by the __Random_Access_Child_Iterator_Tree_Node__ concept.]
+    ]
+    [
+        [Immutable child iterator type]
+        [`const_child_iterator`]
+        [Defined by the __Random_Access_Child_Iterator_Tree_Node__ concept.]
+    ]
+    [
+        [Node creation with data]
+        [`static pointer create(data_type const&);`]
+        [
+            Creates a `simple_node` object with the specified data and returns
+            a pointer to it.
+        ]
+    ]
+    [
+        [Node creation]
+        [`static pointer create();`]
+        [Creates a `simple_node` object and returns a pointer to it.]
+    ]
+    [
+        [Node copy creation]
+        [`static pointer create_copy(const_pointer const&);`]
+        [
+            Creates a deep copy of the specified node.  Returns a pointer to
+            the new node.
+        ]
+    ]
+    [
+        [Data access]
+        [`data_type const& get_data() const;`]
+        [Defined by the __Tree_Node__ concept.]
+    ]
+    [
+        [Data access]
+        [`data_type& get_data();`]
+        [Defined by the __Tree_Node__ concept.]
+    ]
+    [
+        [Parent access]
+        [`const_pointer get_parent() const;`]
+        [Defined by the __Tree_Node__ concept.]
+    ]
+    [
+        [Parent access]
+        [`pointer get_parent();`]
+        [Defined by the __Tree_Node__ concept.]
+    ]
+    [
+        [Child creation with data]
+        [`pointer add_child(data_type const&);`]
+        [Defined by the __Random_Access_Child_Iterator_Tree_Node__ concept.]
+    ]
+    [
+        [Child creation]
+        [`pointer add_child();`]
+        [Defined by the __Random_Access_Child_Iterator_Tree_Node__ concept.]
+    ]
+    [
+        [Child copy creation]
+        [`pointer add_child(const_pointer const&);`]
+        [Defined by the __Random_Access_Child_Iterator_Tree_Node__ concept.]
+    ]
+    [
+        [Children range begin access]
+        [`const_child_iterator get_child_begin() const;`]
+        [Defined by the __Tree_Node__ concept.]
+    ]
+    [
+        [Children range begin access]
+        [`child_iterator get_child_begin();`]
+        [Defined by the __Tree_Node__ concept.]
+    ]
+    [
+        [Children range past-the-end access]
+        [`const_child_iterator get_child_end() const;`]
+        [Defined by the __Tree_Node__ concept.]
+    ]
+    [
+        [Children range past-the-end access]
+        [`child_iterator get_child_end();`]
+        [Defined by the __Tree_Node__ concept.]
+    ]
+    [
+        [Remove all children]
+        [`void remove_all_children();`]
+        [Defined by the __Tree_Node__ concept.]
+    ]
+]
+[endsect] [/ Members]
+
+[section Example]
+<__example_simple_node_cpp__>
+[endsect]
+
+[endsect] [/ simple_node]
+
Added: sandbox/tree_node/libs/tree_node/doc/ref_traversal_state.qbk
==============================================================================
--- (empty file)
+++ sandbox/tree_node/libs/tree_node/doc/ref_traversal_state.qbk	2011-09-23 22:11:39 EDT (Fri, 23 Sep 2011)
@@ -0,0 +1,33 @@
+[/=============================================================================
+    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:traversal_state `traversal_state`]
+
+[section Synopsis]
+[reference__traversal_state]
+[endsect]
+
+[section Description]
+This enumeration type is the return type of the dereferenceability expression
+defined by each iterator type that this library provides.  The `no_traversal`
+value corresponds to `false` in a boolean context, enabling the iterator types
+to fulfill their runtime requirements for dereferenceability.  The
+`pre_order_traversal` and `post_order_traversal` values are significant because
+the __depth_first_iterator__ traverses each node twice, so algorithms must be
+able to distinguish which state the iterator is in when it traverses a tree
+node.  The `breadth_first_traversal` value is defined for completeness.
+[endsect]
+
+[section:definition Where defined]
+``
+#include <__boost_tree_node_traversal_state_hpp__>
+``
+[endsect]
+
+[endsect] [/ traversal_state]
+
Added: sandbox/tree_node/libs/tree_node/doc/reference.qbk
==============================================================================
--- (empty file)
+++ sandbox/tree_node/libs/tree_node/doc/reference.qbk	2011-09-23 22:11:39 EDT (Fri, 23 Sep 2011)
@@ -0,0 +1,32 @@
+[/=============================================================================
+    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_raw_node.qbk]
+[include ref_simple_node.qbk]
+[include ref_raw_associative_node.qbk]
+[include ref_simple_associative_node.qbk]
+[include ref_breadth_first_iterator.qbk]
+[include ref_pre_order_iterator.qbk]
+[include ref_post_order_iterator.qbk]
+[include ref_depth_first_iterator.qbk]
+[include ref_traversal_state.qbk]
+
+  * __raw_node__
+  * __simple_node__
+  * __raw_associative_node__
+  * __simple_associative_node__
+  * __breadth_first_iterator__
+  * __pre_order_iterator__
+  * __post_order_iterator__
+  * __depth_first_iterator__
+  * __traversal_state__
+
+[endsect] [/ Reference]
+
Added: sandbox/tree_node/libs/tree_node/doc/tree_node.qbk
==============================================================================
--- (empty file)
+++ sandbox/tree_node/libs/tree_node/doc/tree_node.qbk	2011-09-23 22:11:39 EDT (Fri, 23 Sep 2011)
@@ -0,0 +1,146 @@
+[library tree_node
+    [quickbook 1.5]
+    [version 0.1]
+    [authors [Enage, Cromwell D.]]
+    [copyright 2011 Cromwell D. Enage]
+    [purpose Low-level tree node framework]
+    [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 links.]
+[def __Runtime_Complexity__ [@http://en.wikipedia.org/wiki/Amortized_analysis Runtime Complexity]]
+
+[/ General concept links.]
+[def __Default_Constructible__ [@http://www.sgi.com/tech/stl/DefaultConstructible.html [*Default Constructible]]]
+[def __Trivial_Iterator__ [@http://www.sgi.com/tech/stl/trivial.html [*Trivial Iterator]]]
+[def __Input_Iterator__ [@http://www.sgi.com/tech/stl/InputIterator.html [*Input Iterator]]]
+[def __Forward_Iterator__ [@http://www.sgi.com/tech/stl/ForwardIterator.html [*Forward Iterator]]]
+[def __Random_Access_Iterator__ [@http://www.sgi.com/tech/stl/RandomAccessIterator.html [*Random Access Iterator]]]
+[def __Container__ [@http://www.sgi.com/tech/stl/Container.html [*Container]]]
+[def __Unary_Function__ [@http://www.sgi.com/tech/stl/UnaryFunction.html [*Unary Function]]]
+
+[/ STL reference links.]
+[def __std_pair__ [@http://www.sgi.com/tech/stl/pair.html `std::pair`]]
+[def _std_pair_ [@http://www.sgi.com/tech/stl/pair.html std::pair]]
+
+[/ Boost library and installation links.]
+[def __Build__ [@boost:more/getting_started.html Build]]
+[def __build__ [@boost:more/getting_started.html build]]
+[def __Boost_Test__ [@boost:libs/test/doc/index.html [*Boost.Test]]]
+[def __SVN_Trac__ [@http://svn.boost.org/ SVN Trac]]
+[def __Boost_Utility_ContainerGen__ [@http://svn.boost.org/svn/boost/sandbox/utility-container_gen/libs/utility/container_gen/doc/html/index.html [*Boost.Utility.ContainerGen]]]
+
+[/ Boost concept links.]
+[def __Copy_Constructible__ [@boost:libs/utility/CopyConstructible.html [*Copy Constructible]]]
+[def __Assignable__ [@boost:libs/utility/Assignable.html [*Assignable]]]
+[def __Boolean_Integral_Constant__ [@boost:libs/mpl/doc/refmanual/integral-constant.html [*Boolean Integral Constant]]]
+
+[/ Boost reference links in text.]
+
+[/ Boost reference links in code.]
+[def __tr1_enable_shared_from_this__ [@boost:libs/smart_ptr/enable_shared_from_this.html `std::tr1::enable_shared_from_this`]]
+[def __mpl_true__ [@boost:libs/mpl/doc/refmanual/bool.html `boost::mpl::true_`]]
+[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 _mpl_false_ [@boost:libs/mpl/doc/refmanual/bool.html boost::mpl::false_]]
+[def _mpl_equal_to_ [@boost:libs/mpl/doc/refmanual/equal_to.html boost::mpl::equal_to]]
+[def _enable_if_ [@boost:libs/utility/enable_if.html `enable_if`]]
+[def __associative_container_gen__ [@http://svn.boost.org/svn/boost/sandbox/utility-container_gen/libs/utility/container_gen/doc/html/container_gen/reference/associative_container_gen.html `associative_container_gen`]]
+
+[/ Boost.TreeNode tutorial source file links.]
+[def __example_raw_node_cpp__ [@../../example/raw_node.cpp example/raw_node.cpp]]
+[def __example_simple_node_cpp__ [@../../example/simple_node.cpp example/simple_node.cpp]]
+[def __example_raw_associative_node_cpp__ [@../../example/raw_associative_node.cpp example/raw_associative_node.cpp]]
+[def __example_simple_associative_node_cpp__ [@../../example/simple_associative_node.cpp example/simple_associative_node.cpp]]
+
+[/ Boost.TreeNode reference header file links.]
+[def __boost_tree_node_raw_node_hpp__ [@../../../../boost/tree_node/raw_node.hpp boost/tree_node/raw_node.hpp]]
+[def __boost_tree_node_simple_node_hpp__ [@../../../../boost/tree_node/simple_node.hpp boost/tree_node/simple_node.hpp]]
+[def __boost_tree_node_raw_associative_node_hpp__ [@../../../../boost/tree_node/raw_associative_node.hpp boost/tree_node/raw_associative_node.hpp]]
+[def __boost_tree_node_simple_associative_node_hpp__ [@../../../../boost/tree_node/simple_associative_node.hpp boost/tree_node/simple_associative_node.hpp]]
+[def __boost_tree_node_breadth_first_iterator_hpp__ [@../../../../boost/tree_node/breadth_first_iterator.hpp boost/tree_node/breadth_first_iterator.hpp]]
+[def __boost_tree_node_pre_order_iterator_hpp__ [@../../../../boost/tree_node/pre_order_iterator.hpp boost/tree_node/pre_order_iterator.hpp]]
+[def __boost_tree_node_post_order_iterator_hpp__ [@../../../../boost/tree_node/post_order_iterator.hpp boost/tree_node/post_order_iterator.hpp]]
+[def __boost_tree_node_depth_first_iterator_hpp__ [@../../../../boost/tree_node/depth_first_iterator.hpp boost/tree_node/depth_first_iterator.hpp]]
+[def __boost_tree_node_traversal_state_hpp__ [@../../../../boost/tree_node/traversal_state.hpp boost/tree_node/traversal_state.hpp]]
+[def __example_raw_node_cpp__ [@../../example/raw_node.cpp example/raw_node.cpp]]
+[def __example_simple_node_cpp__ [@../../example/simple_node.cpp example/simple_node.cpp]]
+[def __example_raw_associative_node_cpp__ [@../../example/raw_associative_node.cpp example/raw_associative_node.cpp]]
+[def __example_simple_associative_node_cpp__ [@../../example/simple_associative_node.cpp example/simple_associative_node.cpp]]
+
+[/ Boost.TreeNode concept links.]
+[def __Tree_Node__ [link tree_node.concepts.tree_node [*Tree Node]]]
+[def __Random_Access_Child_Iterator_Tree_Node__ [link tree_node.concepts.raci_tree_node [*Random Access Child Iterator Tree Node]]]
+[def __Associative_Tree_Node__ [link tree_node.concepts.associative_tree_node [*Associative Tree Node]]]
+[def __Tree_Node_Iterator__ [link tree_node.concepts.tree_node_iterator [*Tree Node Iterator]]]
+[def __Full_Tree_Node_Iterator__ [link tree_node.concepts.full_tree_node_iterator [*Full Tree Node Iterator]]]
+[def __Tree_Node_Descendant_Iterator__ [link tree_node.concepts.tree_node_desc_iterator [*Tree Node Descendant Iterator]]]
+
+[/ Boost.TreeNode reference links.]
+[def __raw_node__ [link tree_node.reference.raw_node `raw_node`]]
+[def _raw_node_ [link tree_node.reference.raw_node raw_node]]
+[def __simple_node__ [link tree_node.reference.simple_node `simple_node`]]
+[def _simple_node_ [link tree_node.reference.simple_node simple_node]]
+[def __raw_associative_node__ [link tree_node.reference.raw_associative_node `raw_associative_node`]]
+[def _raw_associative_node_ [link tree_node.reference.raw_associative_node raw_associative_node]]
+[def __simple_associative_node__ [link tree_node.reference.simple_associative_node `simple_associative_node`]]
+[def _simple_associative_node_ [link tree_node.reference.simple_associative_node simple_associative_node]]
+[def __breadth_first_iterator__ [link tree_node.reference.breadth_first_iterator `breadth_first_iterator`]]
+[def __make_breadth_first_iterator__ [link tree_node.reference.breadth_first_iterator `make_breadth_first_iterator()`]]
+[def __make_breadth_first_descendant_iterator__ [link tree_node.reference.breadth_first_iterator `make_breadth_first_descendant_iterator()`]]
+[def _breadth_first_iterator_ [link tree_node.reference.breadth_first_iterator breadth_first_iterator]]
+[def __pre_order_iterator__ [link tree_node.reference.pre_order_iterator `pre_order_iterator`]]
+[def __make_pre_order_iterator__ [link tree_node.reference.pre_order_iterator `make_pre_order_iterator()`]]
+[def __make_pre_order_descendant_iterator__ [link tree_node.reference.pre_order_iterator `make_pre_order_descendant_iterator()`]]
+[def _pre_order_iterator_ [link tree_node.reference.pre_order_iterator pre_order_iterator]]
+[def __post_order_iterator__ [link tree_node.reference.post_order_iterator `post_order_iterator`]]
+[def __make_post_order_iterator__ [link tree_node.reference.post_order_iterator `make_post_order_iterator()`]]
+[def __make_post_order_descendant_iterator__ [link tree_node.reference.post_order_iterator `make_post_order_descendant_iterator()`]]
+[def _post_order_iterator_ [link tree_node.reference.post_order_iterator post_order_iterator]]
+[def __depth_first_iterator__ [link tree_node.reference.depth_first_iterator `depth_first_iterator`]]
+[def __make_depth_first_iterator__ [link tree_node.reference.depth_first_iterator `make_depth_first_iterator()`]]
+[def __make_depth_first_descendant_iterator__ [link tree_node.reference.depth_first_iterator `make_depth_first_descendant_iterator()`]]
+[def _depth_first_iterator_ [link tree_node.reference.depth_first_iterator depth_first_iterator]]
+[def __traversal_state__ [link tree_node.reference.traversal_state `traversal_state`]]
+[def _traversal_state_ [link tree_node.reference.traversal_state traversal_state]]
+
+[/ Autogenerate concept and reference documentation directly from code.]
+[/ Bypass Doxygen.]
+[import ../../../boost/tree_node/raw_node.hpp]
+[import ../../../boost/tree_node/simple_node.hpp]
+[import ../../../boost/tree_node/raw_associative_node.hpp]
+[import ../../../boost/tree_node/simple_associative_node.hpp]
+[import ../../../boost/tree_node/breadth_first_iterator.hpp]
+[import ../../../boost/tree_node/pre_order_iterator.hpp]
+[import ../../../boost/tree_node/post_order_iterator.hpp]
+[import ../../../boost/tree_node/depth_first_iterator.hpp]
+[import ../../../boost/tree_node/traversal_state.hpp]
+[import ../example/default_unconstructible_type.hpp] [/ example__default_unconstructible_type]
+[import ../example/default_unconstructible_type.cpp] [/ example__default_unconstructible_type__definitions]
+[import ../example/raw_node.cpp]
+[import ../example/simple_node.cpp]
+[import ../example/raw_associative_node.cpp]
+[import ../example/simple_associative_node.cpp]
+
+[/ index.html Start]
+
+[heading Rationale]
+Over the course of reimplementing a decision tree learning algorithm to use
+modern C++ techniques, the need for a generic tree library became evident.  The
+in-house data structures in use at the time were undergoing modification as
+well.  It was found that the core operations occurred at the node level rather
+than at the tree level, which stored only high-level algorithms.  Efforts went
+underway to retrofit these algorithms to use iterators and to further factor
+out generic data structures from the decision tree components and other
+application-specific utilities.  This library represents the Boostified
+culmination of these efforts.
+
+[/ index.html End]
+
+[include concepts.qbk]
+[include reference.qbk]
+