$include_dir="/home/hyper-archives/boost-commit/include"; include("$include_dir/msg-header.inc") ?>
Subject: [Boost-commit] svn:boost r84977 - in sandbox/tree_node/libs/tree_node/doc: . html html/tree_node html/tree_node/concepts html/tree_node/reference
From: sponage_at_[hidden]
Date: 2013-07-07 14:52:52
Author: expaler
Date: 2013-07-07 14:52:52 EDT (Sun, 07 Jul 2013)
New Revision: 84977
URL: http://svn.boost.org/trac/boost/changeset/84977
Log:
Boost.TreeNode: updated documentation to use Quickbook 1.6 features.
Replaced:
   sandbox/tree_node/libs/tree_node/doc/changelog.qbk   (contents, props changed)
   sandbox/tree_node/libs/tree_node/doc/concept_assoc_tree_node.qbk   (contents, props changed)
   sandbox/tree_node/libs/tree_node/doc/concept_base_tree_node.qbk   (contents, props changed)
   sandbox/tree_node/libs/tree_node/doc/concept_base_type_generator.qbk   (contents, props changed)
   sandbox/tree_node/libs/tree_node/doc/concept_binary_tree_node.qbk   (contents, props changed)
   sandbox/tree_node/libs/tree_node/doc/concept_copyable_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_indexable_container.qbk   (contents, props changed)
   sandbox/tree_node/libs/tree_node/doc/concept_indexable_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_movable_tree_node.qbk   (contents, props changed)
   sandbox/tree_node/libs/tree_node/doc/concept_nary_tree_node.qbk   (contents, props changed)
   sandbox/tree_node/libs/tree_node/doc/concept_node_type_generator.qbk   (contents, props changed)
   sandbox/tree_node/libs/tree_node/doc/concept_non_assoc_tree_node.qbk   (contents, props changed)
   sandbox/tree_node/libs/tree_node/doc/concept_rvrsible_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/index.html   (contents, props changed)
   sandbox/tree_node/libs/tree_node/doc/html/tree_node/changelog.html   (contents, props changed)
   sandbox/tree_node/libs/tree_node/doc/html/tree_node/concepts.html   (contents, props changed)
   sandbox/tree_node/libs/tree_node/doc/html/tree_node/concepts/associative_tree_node.html   (contents, props changed)
   sandbox/tree_node/libs/tree_node/doc/html/tree_node/concepts/base_tree_node.html   (contents, props changed)
   sandbox/tree_node/libs/tree_node/doc/html/tree_node/concepts/base_type_generator.html   (contents, props changed)
   sandbox/tree_node/libs/tree_node/doc/html/tree_node/concepts/binary_tree_node.html   (contents, props changed)
   sandbox/tree_node/libs/tree_node/doc/html/tree_node/concepts/copyable_tree_node.html   (contents, props changed)
   sandbox/tree_node/libs/tree_node/doc/html/tree_node/concepts/full_tree_node_iterator.html   (contents, props changed)
   sandbox/tree_node/libs/tree_node/doc/html/tree_node/concepts/indexable_container.html   (contents, props changed)
   sandbox/tree_node/libs/tree_node/doc/html/tree_node/concepts/indexable_iterator.html   (contents, props changed)
   sandbox/tree_node/libs/tree_node/doc/html/tree_node/concepts/movable_tree_node.html   (contents, props changed)
   sandbox/tree_node/libs/tree_node/doc/html/tree_node/concepts/nary_tree_node.html   (contents, props changed)
   sandbox/tree_node/libs/tree_node/doc/html/tree_node/concepts/node_type_generator.html   (contents, props changed)
   sandbox/tree_node/libs/tree_node/doc/html/tree_node/concepts/non_assoc_tree_node.html   (contents, props changed)
   sandbox/tree_node/libs/tree_node/doc/html/tree_node/concepts/reversible_tree_node.html   (contents, props changed)
   sandbox/tree_node/libs/tree_node/doc/html/tree_node/concepts/tree_node.html   (contents, props changed)
   sandbox/tree_node/libs/tree_node/doc/html/tree_node/concepts/tree_node_desc_iterator.html   (contents, props changed)
   sandbox/tree_node/libs/tree_node/doc/html/tree_node/concepts/tree_node_iterator.html   (contents, props changed)
   sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference.html   (contents, props changed)
   sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/accumulation_key.html   (contents, props changed)
   sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/advance_binary.html   (contents, props changed)
   sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/assoc_cont_derived_body.html   (contents, props changed)
   sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/assoc_node_base_gen.html   (contents, props changed)
   sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/associative_node.html   (contents, props changed)
   sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/associative_node_base.html   (contents, props changed)
   sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/associative_node_gen.html   (contents, props changed)
   sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/at_key.html   (contents, props changed)
   sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/avl_balancer.html   (contents, props changed)
   sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/binary_descendant.html   (contents, props changed)
   sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/binary_descendant_at_index.html   (contents, props changed)
   sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/binary_index_of.html   (contents, props changed)
   sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/binary_lower_bound.html   (contents, props changed)
   sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/binary_node.html   (contents, props changed)
   sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/binary_node_base.html   (contents, props changed)
   sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/binary_node_base_gen.html   (contents, props changed)
   sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/binary_node_gen.html   (contents, props changed)
   sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/binary_upper_bound.html   (contents, props changed)
   sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/binode_assoc_container.html   (contents, props changed)
   sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/binode_container.html   (contents, props changed)
   sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/binode_map.html   (contents, props changed)
   sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/binode_multimap.html   (contents, props changed)
   sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/binode_multiset.html   (contents, props changed)
   sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/binode_set.html   (contents, props changed)
   sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/breadth_first_desc_iter.html   (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/can_use_fusion.html   (contents, props changed)
   sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/can_use_fusion_with_typeof.html   (contents, props changed)
   sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/cartesian_sort.html   (contents, props changed)
   sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/cartesian_sort_range.html   (contents, props changed)
   sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/compare_selector.html   (contents, props changed)
   sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/container_derived_body.html   (contents, props changed)
   sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/copyable_and_movable.html   (contents, props changed)
   sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/count_key.html   (contents, props changed)
   sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/data_key.html   (contents, props changed)
   sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/depth_first_desc_iter.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/dereference_iterator.html   (contents, props changed)
   sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/emplace_ctor_fwd_decl.html   (contents, props changed)
   sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/emplace_ctor_inline_def.html   (contents, props changed)
   sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/emplace_ctor_inline_hdr.html   (contents, props changed)
   sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/emplace_ctor_w_alloc_f_dcl.html   (contents, props changed)
   sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/emplace_ctor_w_alloc_i_def.html   (contents, props changed)
   sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/emplace_ctor_w_alloc_i_hdr.html   (contents, props changed)
   sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/get_keys.html   (contents, props changed)
   sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/get_properties.html   (contents, props changed)
   sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/has_key.html   (contents, props changed)
   sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/height_key.html   (contents, props changed)
   sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/in_order_iterator.html   (contents, props changed)
   sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/nary_node.html   (contents, props changed)
   sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/nary_node_base.html   (contents, props changed)
   sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/nary_node_base_gen.html   (contents, props changed)
   sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/nary_node_gen.html   (contents, props changed)
   sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/null_balancer.html   (contents, props changed)
   sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/position_key.html   (contents, props changed)
   sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/post_order_desc_iter.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_desc_iter.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/red_black_balancer.html   (contents, props changed)
   sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/red_black_flag_key.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/html/tree_node/reference/tree_node_base.html   (contents, props changed)
   sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/value_at_key.html   (contents, props changed)
   sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/with_accumulation.html   (contents, props changed)
   sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/with_accumulation_base.html   (contents, props changed)
   sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/with_accumulation_base_gen.html   (contents, props changed)
   sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/with_accumulation_gen.html   (contents, props changed)
   sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/with_count.html   (contents, props changed)
   sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/with_count_base.html   (contents, props changed)
   sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/with_count_base_gen.html   (contents, props changed)
   sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/with_count_gen.html   (contents, props changed)
   sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/with_height.html   (contents, props changed)
   sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/with_height_base.html   (contents, props changed)
   sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/with_height_base_gen.html   (contents, props changed)
   sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/with_height_gen.html   (contents, props changed)
   sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/with_position.html   (contents, props changed)
   sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/with_position_base.html   (contents, props changed)
   sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/with_position_base_gen.html   (contents, props changed)
   sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/with_position_gen.html   (contents, props changed)
   sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/with_rb_flag.html   (contents, props changed)
   sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/with_rb_flag_base.html   (contents, props changed)
   sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/with_rb_flag_base_gen.html   (contents, props changed)
   sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/with_rb_flag_gen.html   (contents, props changed)
   sandbox/tree_node/libs/tree_node/doc/ref_accumulation_key.qbk   (contents, props changed)
   sandbox/tree_node/libs/tree_node/doc/ref_advance_binary.qbk   (contents, props changed)
   sandbox/tree_node/libs/tree_node/doc/ref_assoc_cont_derived_body.qbk   (contents, props changed)
   sandbox/tree_node/libs/tree_node/doc/ref_assoc_node_base_gen.qbk   (contents, props changed)
   sandbox/tree_node/libs/tree_node/doc/ref_associative_node.qbk   (contents, props changed)
   sandbox/tree_node/libs/tree_node/doc/ref_associative_node_base.qbk   (contents, props changed)
   sandbox/tree_node/libs/tree_node/doc/ref_associative_node_gen.qbk   (contents, props changed)
   sandbox/tree_node/libs/tree_node/doc/ref_at_key.qbk   (contents, props changed)
   sandbox/tree_node/libs/tree_node/doc/ref_avl_balancer.qbk   (contents, props changed)
   sandbox/tree_node/libs/tree_node/doc/ref_bin_descendant_at_index.qbk   (contents, props changed)
   sandbox/tree_node/libs/tree_node/doc/ref_binary_descendant.qbk   (contents, props changed)
   sandbox/tree_node/libs/tree_node/doc/ref_binary_index_of.qbk   (contents, props changed)
   sandbox/tree_node/libs/tree_node/doc/ref_binary_lower_bound.qbk   (contents, props changed)
   sandbox/tree_node/libs/tree_node/doc/ref_binary_node.qbk   (contents, props changed)
   sandbox/tree_node/libs/tree_node/doc/ref_binary_node_base.qbk   (contents, props changed)
   sandbox/tree_node/libs/tree_node/doc/ref_binary_node_base_gen.qbk   (contents, props changed)
   sandbox/tree_node/libs/tree_node/doc/ref_binary_node_gen.qbk   (contents, props changed)
   sandbox/tree_node/libs/tree_node/doc/ref_binary_upper_bound.qbk   (contents, props changed)
   sandbox/tree_node/libs/tree_node/doc/ref_binode_assoc_container.qbk   (contents, props changed)
   sandbox/tree_node/libs/tree_node/doc/ref_binode_container.qbk   (contents, props changed)
   sandbox/tree_node/libs/tree_node/doc/ref_binode_map.qbk   (contents, props changed)
   sandbox/tree_node/libs/tree_node/doc/ref_binode_multimap.qbk   (contents, props changed)
   sandbox/tree_node/libs/tree_node/doc/ref_binode_multiset.qbk   (contents, props changed)
   sandbox/tree_node/libs/tree_node/doc/ref_binode_set.qbk   (contents, props changed)
   sandbox/tree_node/libs/tree_node/doc/ref_breadth_first_desc_iter.qbk   (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_can_use_fusion.qbk   (contents, props changed)
   sandbox/tree_node/libs/tree_node/doc/ref_can_use_fusion_w_typeof.qbk   (contents, props changed)
   sandbox/tree_node/libs/tree_node/doc/ref_cartesian_sort.qbk   (contents, props changed)
   sandbox/tree_node/libs/tree_node/doc/ref_cartesian_sort_range.qbk   (contents, props changed)
   sandbox/tree_node/libs/tree_node/doc/ref_compare_selector.qbk   (contents, props changed)
   sandbox/tree_node/libs/tree_node/doc/ref_container_derived_body.qbk   (contents, props changed)
   sandbox/tree_node/libs/tree_node/doc/ref_copyable_and_movable.qbk   (contents, props changed)
   sandbox/tree_node/libs/tree_node/doc/ref_count_key.qbk   (contents, props changed)
   sandbox/tree_node/libs/tree_node/doc/ref_data_key.qbk   (contents, props changed)
   sandbox/tree_node/libs/tree_node/doc/ref_depth_first_desc_iter.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_dereference_iterator.qbk   (contents, props changed)
   sandbox/tree_node/libs/tree_node/doc/ref_empl_ctor_w_allc_f_decl.qbk   (contents, props changed)
   sandbox/tree_node/libs/tree_node/doc/ref_empl_ctor_w_allc_il_def.qbk   (contents, props changed)
   sandbox/tree_node/libs/tree_node/doc/ref_empl_ctor_w_allc_il_hdr.qbk   (contents, props changed)
   sandbox/tree_node/libs/tree_node/doc/ref_emplace_ctor_fwd_decl.qbk   (contents, props changed)
   sandbox/tree_node/libs/tree_node/doc/ref_emplace_ctor_inline_def.qbk   (contents, props changed)
   sandbox/tree_node/libs/tree_node/doc/ref_emplace_ctor_inline_hdr.qbk   (contents, props changed)
   sandbox/tree_node/libs/tree_node/doc/ref_get_keys.qbk   (contents, props changed)
   sandbox/tree_node/libs/tree_node/doc/ref_get_properties.qbk   (contents, props changed)
   sandbox/tree_node/libs/tree_node/doc/ref_has_key.qbk   (contents, props changed)
   sandbox/tree_node/libs/tree_node/doc/ref_height_key.qbk   (contents, props changed)
   sandbox/tree_node/libs/tree_node/doc/ref_in_order_iterator.qbk   (contents, props changed)
   sandbox/tree_node/libs/tree_node/doc/ref_nary_node.qbk   (contents, props changed)
   sandbox/tree_node/libs/tree_node/doc/ref_nary_node_base.qbk   (contents, props changed)
   sandbox/tree_node/libs/tree_node/doc/ref_nary_node_base_gen.qbk   (contents, props changed)
   sandbox/tree_node/libs/tree_node/doc/ref_nary_node_gen.qbk   (contents, props changed)
   sandbox/tree_node/libs/tree_node/doc/ref_null_balancer.qbk   (contents, props changed)
   sandbox/tree_node/libs/tree_node/doc/ref_position_key.qbk   (contents, props changed)
   sandbox/tree_node/libs/tree_node/doc/ref_post_order_desc_iter.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_desc_iter.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_red_black_balancer.qbk   (contents, props changed)
   sandbox/tree_node/libs/tree_node/doc/ref_red_black_flag_key.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/ref_tree_node_base.qbk   (contents, props changed)
   sandbox/tree_node/libs/tree_node/doc/ref_value_at_key.qbk   (contents, props changed)
   sandbox/tree_node/libs/tree_node/doc/ref_with_accum_base_gen.qbk   (contents, props changed)
   sandbox/tree_node/libs/tree_node/doc/ref_with_accumulation.qbk   (contents, props changed)
   sandbox/tree_node/libs/tree_node/doc/ref_with_accumulation_base.qbk   (contents, props changed)
   sandbox/tree_node/libs/tree_node/doc/ref_with_accumulation_gen.qbk   (contents, props changed)
   sandbox/tree_node/libs/tree_node/doc/ref_with_count.qbk   (contents, props changed)
   sandbox/tree_node/libs/tree_node/doc/ref_with_count_base.qbk   (contents, props changed)
   sandbox/tree_node/libs/tree_node/doc/ref_with_count_base_gen.qbk   (contents, props changed)
   sandbox/tree_node/libs/tree_node/doc/ref_with_count_gen.qbk   (contents, props changed)
   sandbox/tree_node/libs/tree_node/doc/ref_with_height.qbk   (contents, props changed)
   sandbox/tree_node/libs/tree_node/doc/ref_with_height_base.qbk   (contents, props changed)
   sandbox/tree_node/libs/tree_node/doc/ref_with_height_base_gen.qbk   (contents, props changed)
   sandbox/tree_node/libs/tree_node/doc/ref_with_height_gen.qbk   (contents, props changed)
   sandbox/tree_node/libs/tree_node/doc/ref_with_position.qbk   (contents, props changed)
   sandbox/tree_node/libs/tree_node/doc/ref_with_position_base.qbk   (contents, props changed)
   sandbox/tree_node/libs/tree_node/doc/ref_with_position_base_gen.qbk   (contents, props changed)
   sandbox/tree_node/libs/tree_node/doc/ref_with_position_gen.qbk   (contents, props changed)
   sandbox/tree_node/libs/tree_node/doc/ref_with_rb_flag.qbk   (contents, props changed)
   sandbox/tree_node/libs/tree_node/doc/ref_with_rb_flag_base.qbk   (contents, props changed)
   sandbox/tree_node/libs/tree_node/doc/ref_with_rb_flag_base_gen.qbk   (contents, props changed)
   sandbox/tree_node/libs/tree_node/doc/ref_with_rb_flag_gen.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/changelog.qbk
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ sandbox/tree_node/libs/tree_node/doc/changelog.qbk	2013-07-07 14:52:52 EDT (Sun, 07 Jul 2013)	(r84977)
@@ -0,0 +1,186 @@
+[/=============================================================================
+    Copyright (C) 2011-2013 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 Changelog]
+
+[heading From 0.4 to 0.5]
+
+[itemized_list
+    [Added the __Copyable_Tree_Node__ and __Movable_Tree_Node__ concepts.]
+    [Added the __tree_node_compare_selector__ template.]
+    [Added the __null_balancer__ trait struct.]
+    [Added the __at_key__ intrinsic function object.]
+    [Added the __cartesian_sort__ and __cartesian_sort_range__ algorithms.]
+]
+
+[heading From 0.3 to 0.4]
+
+[itemized_list
+    [
+        Added the __binode_container__, __binode_associative_container__,
+        __binode_set__, __binode_multiset__, __binode_map__, and
+        __binode_multimap__ data structures.
+    ]
+    [Added the __red_black_balancer__ and __avl_balancer__ trait structs.]
+    [
+        Added the __Reversible_Tree_Node__, __Indexable_Container__, and
+        __Indexable_Iterator__ concepts.
+    ]
+    [
+        Refined the [*Type Generator] concept into the __Node_Type_Generator__
+        and __Base_Type_Generator__ concepts.
+    ]
+    [
+        Added the __TREE_NODE_COPYABLE_AND_MOVABLE__,
+        __TREE_NODE_EMPLACEMENT_CTOR_FWD_DECL__,
+        __TREE_NODE_EMPLACEMENT_CTOR_INLINE_HEADER__,
+        __TREE_NODE_EMPLACEMENT_CTOR_INLINE_DEF__,
+        __TREE_NODE_EMPLACEMENT_CTOR_W_ALLOC_FWD_DECL__,
+        __TREE_NODE_EMPLACEMENT_CTOR_W_ALLOC_INLINE_HEADER__,
+        __TREE_NODE_EMPLACEMENT_CTOR_W_ALLOC_INLINE_DEF__,
+        __TREE_NODE_CAN_USE_FUSION__, and
+        __TREE_NODE_CAN_USE_FUSION_WITH_TYPEOF__ preprocessor macros.
+    ]
+    [
+        Added size type and emplacement constructor and size method expressions
+        to the __Tree_Node__ concept.
+    ]
+    [
+        Added `on_post_*` and `on_post_*_impl` method expressions to the
+        __Base_Tree_Node__ concept.
+    ]
+    [
+        Added iterator range and immutable iterator range types to the
+        __Associative_Tree_Node__ concept.
+    ]
+    [__Tree_Node__ models are now __Movable__.]
+    [
+        __Tree_Node__ models are no longer __Equality_Comparable__ or
+        __Less_Than_Comparable__.
+    ]
+    [
+        Added the __tree_node_with_accumulation__ adaptor class template,
+        the corresponding __Base_Tree_Node__ model
+        __tree_node_with_accumulation_base__, the corresponding
+        __Node_Type_Generator__ model __tree_node_with_accumulation_gen__,
+        and the corresponding __Base_Type_Generator__ model
+        __tree_node_with_accumulation_base_gen__.
+    ]
+    [
+        Added the __tree_node_with_count__ adaptor class template, the
+        corresponding __Base_Tree_Node__ model __tree_node_with_count_base__,
+        the corresponding __Node_Type_Generator__ model
+        __tree_node_with_count_gen__, and the corresponding
+        __Base_Type_Generator__ model __tree_node_with_count_base_gen__.
+    ]
+    [Renamed `with_depth` to __tree_node_with_height__.]
+    [Renamed `with_depth_base` to __tree_node_with_height_base__.]
+    [Renamed `with_depth_gen` to __tree_node_with_height_gen__.]
+    [
+        Added the __Base_Type_Generator__ models
+        __tree_node_with_count_base_gen__, __tree_node_with_height_base_gen__,
+        __tree_node_with_position_base_gen__, and
+        __tree_node_with_red_black_flag_base_gen__.
+    ]
+    [
+        Added the __advance_binary__, __binary_index_of__,
+        __binary_descendant__, __binary_descendant_at_index__,
+        __binary_upper_bound__, and __binary_lower_bound__ algorithms.
+    ]
+    [
+        Removed `tree_node_equal`, `tree_node_strictly_equal`,
+        `tree_node_lexicographical_compare`, and
+        `tree_node_strict_lexicographical_compare` algorithms.
+    ]
+]
+
+[heading From 0.2 to 0.3]
+
+[itemized_list
+    [
+        Added the __Associative_Tree_Node__, __Non_Associative_Tree_Node__,
+        __Binary_Tree_Node__, __N_ary_Tree_Node__, and [*Type Generator]
+        concepts.
+    ]
+    [
+        Added the __binary_node__ data structure, the corresponding
+        __Base_Tree_Node__ model __binary_node_base__, and the corresponding
+        [*Type Generator] model __binary_node_gen__.
+    ]
+    [
+        Renamed `raw_node` to __nary_node__; added the corresponding
+        __Base_Tree_Node__ model __nary_node_base__ and the corresponding
+        [*Type Generator] model __nary_node_gen__.
+    ]
+    [
+        Renamed `raw_associative_node` to __associative_node__; added the
+        corresponding __Base_Tree_Node__ model __associative_node_base__ and
+        the corresponding [*Type Generator] model __associative_node_gen__.
+    ]
+    [
+        Added the __Base_Tree_Node__ model `with_depth_base` and the
+        corresponding [*Type Generator] model `with_depth_gen`.
+    ]
+    [
+        Added __tree_node_with_position__ adaptor class template,
+        the corresponding __Base_Tree_Node__ model
+        __tree_node_with_position_base__, and the corresponding
+        [*Type Generator] model __tree_node_with_position_gen__.
+    ]
+    [
+        Added the __tree_node_with_red_black_flag__ adaptor class template,
+        the corresponding __Base_Tree_Node__ model
+        __tree_node_with_red_black_flag_base__, and the corresponding
+        [*Type Generator] model __tree_node_with_red_black_flag_gen__.
+    ]
+    [
+        Added the __breadth_first_descendant_iterator__,
+        __pre_order_descendant_iterator__, __post_order_descendant_iterator__,
+        __in_order_iterator__, and __depth_first_descendant_iterator__ adaptor
+        class templates.
+    ]
+    [
+        Added the __dereference_iterator__, `tree_node_equal`,
+        `tree_node_strictly_equal`, `tree_node_lexicographical_compare`, and
+        `tree_node_strict_lexicographical_compare` algorithms.
+    ]
+    [
+        Removed the [*Factory-Constructible Tree Node] and
+        [*Cloneable Tree Node] concepts.
+    ]
+    [Removed the `tree_node_factory` facade.]
+    [Removed the `shared_tree_node_base` `struct` template.]
+    [Removed the `simple_node` and `simple_associative_node` data structures.]
+    [
+        Removed the `with_child_range_access` adaptor class template; the
+        __Tree_Node__ concept now requires child range access for all models.
+    ]
+]
+
+[heading From 0.1 to 0.2]
+
+[itemized_list
+    [
+        Added the __Base_Tree_Node__, [*Factory-Constructible Tree Node], and
+        [*Cloneable Tree Node] concepts.
+    ]
+    [Added `tree_node_factory` facade.]
+    [
+        Added the __tree_node_base__ and `shared_tree_node_base` `struct`
+        templates; each __Tree_Node__ model that is not a __Base_Tree_Node__
+        now inherits from a corresponding __Base_Tree_Node__ which, in turn,
+        inherits from one of these two types.
+    ]
+    [
+        Added the `with_child_range_access` and `with_depth` adaptor class
+        templates.
+    ]
+]
+
+[endsect] [/ Changelog]
+
Added: sandbox/tree_node/libs/tree_node/doc/concept_assoc_tree_node.qbk
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ sandbox/tree_node/libs/tree_node/doc/concept_assoc_tree_node.qbk	2013-07-07 14:52:52 EDT (Sun, 07 Jul 2013)	(r84977)
@@ -0,0 +1,337 @@
+[/=============================================================================
+    Copyright (C) 2011-2013 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&`.]]
+    [[`const_node`][An object of type `Node const&`.]]
+    [[`source`][An object of type `Node&&`.]]
+    [[`key`][An object of type `Node::traits::key_type const&`.]]
+    [[`Args`][The type of `args`.]]
+    [
+        [`args`]
+        [
+            Arguments to be forwarded to the appropriate
+            `Node::traits::data_type` constructor.
+        ]
+    ]
+]
+
+[section:types Associated Types]
+Three new types are introduced.
+
+[table
+    [[Name][Expression][Description][Requirements]]
+    [
+        [Key type]
+        [`Node::traits::key_type`]
+        [The type of a key that a tree node will associate with a child node.]
+        []
+    ]
+    [
+        [Iterator range type]
+        [`Node::traits::iterator_range`]
+        [The type of a range of child nodes and their associated keys.]
+        [It must model a __Boost_Range__ concept.]
+    ]
+    [
+        [Immutable iterator range type]
+        [`Node::traits::const_iterator_range`]
+        [
+            The type of an immutable view of a range of child nodes and their
+            associated keys.
+        ]
+        [It must model a __Boost_Range__ concept.]
+    ]
+]
+
+In addition, the requirements for the iterator types are strengthened:
+
+[itemized_list
+    [The value type of `Node::iterator` must define a `first_type` type.]
+    [
+        The value type of `Node::iterator` must define a `first` member
+        variable of type `first_type`.
+    ]
+    [
+        Given an object `itr` of type `Node::iterator`, `itr->first` must be
+        convertible to `Node::traits::key_type const&`.
+    ]
+    [The value type of `Node::iterator` must define a `second_type` type.]
+    [
+        The value type of `Node::iterator` must define a `second` member
+        variable of type `second_type`.
+    ]
+    [
+        Given an object `itr` of type `Node::iterator`,
+        [^_dereference_iterator_(itr)] must be convertible to `Node&`.
+    ]
+    [The value type of `Node::const_iterator` must define a `first_type` type.]
+    [
+        The value type of `Node::const_iterator` must define a `first` member
+    variable of type `first_type`.
+    ]
+    [
+        Given an object `itr` of type `Node::const_iterator`, `itr->first` must
+        be convertible to `Node::traits::key_type const&`.
+    ]
+    [
+        The value type of `Node::const_iterator` must define a `second_type`
+        type.
+    ]
+    [
+        The value type of `Node::const_iterator` must define a `second` member
+        variable of type `second_type`.
+    ]
+    [
+        Given an object `itr` of type `Node::const_iterator`,
+        [^_dereference_iterator_(itr)] must be convertible to `Node const&`.
+    ]
+]
+[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]
+        [Return Type]
+        [Semantics]
+        [Type requirements]
+        [__Runtime_Complexity__]
+    ]
+    [
+        [Child creation]
+        [``
+            node.emplace(
+                key
+              , _boost_forward_<Args>(args)...
+            );
+        ``]
+        [``
+            Node::iterator
+        ``]
+        [
+            Returns an iterator pointing to the child that `node` associates
+            with `key` if `node` allows only one such association to exist;
+            otherwise, creates a tree node to be associated with the specified
+            key in the range of children of the invoking node, then returns an
+            iterator pointing to the created node, which will initialize its
+            data with the specified arguments.
+        ]
+        []
+        [Logarithmic]
+    ]
+    [
+        [Child copy creation]
+        [``
+            node.insert(key, const_node)
+        ``]
+        [``
+            Node::iterator
+        ``]
+        [
+            Returns an iterator pointing to the child that `node` associates
+            with `key` if `node` allows only one such association to exist;
+            otherwise, creates a deep copy of `const_node` to be associated
+            with the specified key in the range of children of the invoking
+            node, then returns an iterator pointing to the created node.
+        ]
+        [
+            The data type must model the __Copy_Constructible__ and __Movable__
+            concepts.
+        ]
+        [Linear with respect to the number of descendants of `const_node`]
+    ]
+    [
+        [Child move insertion]
+        [``
+            node.insert(key, source)
+        ``]
+        [``
+            Node::iterator
+        ``]
+        [
+            Returns an iterator pointing to the child that `node` associates
+            with `key` if `node` allows only one such association to exist;
+            otherwise, move-constructs a copy of `source` to be associated
+            with the specified key in the range of children of the invoking
+            node, then returns an iterator pointing to the created node.
+        ]
+        [The data type must model the __Movable__ concept.]
+        [Linear with respect to the number of children of `source`]
+    ]
+    [
+        [Child read-only search]
+        [``
+            const_node.find(key)
+        ``]
+        [``
+            Node::const_iterator
+        ``]
+        [
+            Returns an iterator pointing to a child node associated with the
+            specified key, or `const_node.end()` if no such child exists.
+        ]
+        []
+        [Logarithmic]
+    ]
+    [
+        [Child search]
+        [``
+            node.find(key)
+        ``]
+        [``
+            Node::iterator
+        ``]
+        [
+            Returns an iterator pointing to a child node associated with the
+            specified key, or `node.end()` if no such child exists.
+        ]
+        []
+        [Logarithmic]
+    ]
+    [
+        [Child read-only search lower bound]
+        [``
+            const_node.lower_bound(key)
+        ``]
+        [``
+            Node::const_iterator
+        ``]
+        [
+            Returns an iterator pointing to a child node associated with the
+            lowest key not less than the specified key, or `const_node.end()`
+            if no such child exists.
+        ]
+        []
+        [Logarithmic]
+    ]
+    [
+        [Child search lower bound]
+        [``
+            node.lower_bound(key)
+        ``]
+        [``
+            Node::iterator
+        ``]
+        [
+            Returns an iterator pointing to a child node associated with the
+            lowest key not less than the specified key, or `node.end()` if no
+            such child exists.
+        ]
+        []
+        [Logarithmic]
+    ]
+    [
+        [Child read-only search upper bound]
+        [``
+            const_node.upper_bound(key)
+        ``]
+        [``
+            Node::const_iterator
+        ``]
+        [
+            Returns an iterator pointing to a child node associated with the
+            lowest key that is strictly greater than the specified key, or
+            `const_node.end()` if no such child exists.
+        ]
+        []
+        [Logarithmic]
+    ]
+    [
+        [Child search upper bound]
+        [``
+            node.upper_bound(key)
+        ``]
+        [``
+            Node::iterator
+        ``]
+        [
+            Returns an iterator pointing to a child node associated with the
+            lowest key that is strictly greater than the specified key, or
+            `node.end()` if no such child exists.
+        ]
+        []
+        [Logarithmic]
+    ]
+    [
+        [Child read-only search range]
+        [``
+            const_node.equal_range(key)
+        ``]
+        [``
+            Node::traits::const_iterator_range
+        ``]
+        [
+            Returns a __Boost_Range__ of all child nodes associated with the
+            specified key.  The child nodes in the range returned cannot be
+            modified.  If no such children exist, then the range will be empty.
+        ]
+        []
+        [Logarithmic]
+    ]
+    [
+        [Child search range]
+        [``
+            node.equal_range(key)
+        ``]
+        [``
+            Node::traits::iterator_range
+        ``]
+        [
+            Returns a __Boost_Range__ of all child nodes associated with the
+            specified key.  The child nodes in the range returned can be
+            modified.  If no such children exist, then the range will be empty.
+        ]
+        []
+        [Logarithmic]
+    ]
+    [
+        [Remove children]
+        [``
+            node.erase(key)
+        ``]
+        [``
+            Node::size_type
+        ``]
+        [
+            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]
+[itemized_list
+    [__associative_node__]
+    [__associative_node_base__]
+]
+[endsect]
+
+[endsect] [/ Associative Tree Node]
+
Added: sandbox/tree_node/libs/tree_node/doc/concept_base_tree_node.qbk
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ sandbox/tree_node/libs/tree_node/doc/concept_base_tree_node.qbk	2013-07-07 14:52:52 EDT (Sun, 07 Jul 2013)	(r84977)
@@ -0,0 +1,379 @@
+[/=============================================================================
+    Copyright (C) 2011-2013 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:base_tree_node Base Tree Node]
+
+[section Description]
+Models of this concept allow the __Tree_Node__ adaptor types to parameterically
+inherit their functionality for greater reuse.
+
+In practice, each [*Base Tree Node] model must do the following:
+
+[itemized_list
+    [
+        Inherit from either __tree_node_base__ or the return type of a
+        __Base_Type_Generator__.
+    ]
+    [Take in the derived type and the data type as template parameters.]
+    [
+        Also take in the key type if the derived type is (possibly) an
+        __Associative_Tree_Node__ model.
+    ]
+    [
+        Declare a template instantiation of __tree_node_base__ with the derived
+        type as a `friend struct` if it overrides any of __tree_node_base__
+        implementation methods.
+    ]
+]
+
+[endsect]
+
+[section Refinement of]
+__Tree_Node__
+[endsect]
+
+[variablelist Notation
+    [[`Base`][A type that models the [*Base Tree Node] concept.]]
+    [[`base`][An object of type `Base&`.]]
+    [[`const_base`][An object of type `Base const&`.]]
+    [[`Node`][A __Tree_Node__ model that inherits from `Base`.]]
+    [[`copy`][An object of type `Node const&`.]]
+    [[`source`][An object of type `Node&&`.]]
+    [[`alloc`][An object of type `Node::traits::allocator_reference`.]]
+    [[`itr`][An object of type `Node::iterator`.]]
+    [[`BIC`][A type that models the __Boolean_Integral_Constant__ concept.]]
+    [[`bic`][An object of type `BIC`.]]
+]
+
+[section:types Associated Types]
+No additional types beyond those defined in the __Tree_Node__ concept.
+[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][Return Type][Semantics][__Runtime_Complexity__]]
+    [
+        [Derived access]
+        [`base.get_derived()`]
+        [`Node::pointer`]
+        [Returns a pointer to the same `Node` object.]
+        [Constant]
+    ]
+    [
+        [Derived read-only access]
+        [`const_base.get_derived()`]
+        [`Node::const_pointer`]
+        [Returns a pointer to the same immutable `Node` object.]
+        [Constant]
+    ]
+]
+
+Also, the following expressions must be valid (unless the `Node` type does
+/not/ define the operation within which the expression can be invoked).
+
+[table
+    [
+        [Name]
+        [Expression]
+        [Return Type]
+        [Semantics]
+        [Type requirements]
+        [__Runtime_Complexity__]
+    ]
+    [
+        [Derived copy constructor]
+        [`Base(copy)`]
+        []
+        [Constructs a deep copy of the specified node.]
+        [
+            The initializer list of the `Node` copy constructor must be able
+            to call this constructor.
+        ]
+        [Linear with respect to the number of descendants]
+    ]
+    [
+        [Derived copy constructor with allocator]
+        [`Base(copy, alloc)`]
+        []
+        [
+            Constructs a deep copy of the specified node.  The new node will
+            use the specified allocator (if the allocator reference type is
+            mutable) or a copy of it (if the allocator reference type is to
+            `const`) to construct its own parent node or its own child nodes
+            if and when invoking its respective creation methods.
+        ]
+        [
+            The initializer list of the `Node` copy constructor with allocator
+            must be able to call this constructor.
+        ]
+        [Linear with respect to the number of descendants]
+    ]
+    [
+        [Derived move constructor]
+        [`Base(source)`]
+        []
+        [Transfers the contents of the specified node to this one.]
+        [
+            The initializer list of the `Node` move constructor must be able
+            to call this constructor.
+        ]
+        [Linear with respect to the number of children]
+    ]
+    [
+        [Derived move constructor with allocator]
+        [`Base(source, alloc)`]
+        []
+        [
+            Transfers the contents of the specified node to this one.  The new
+            node will use the specified allocator (if the allocator reference
+            type is mutable) or a copy of it (if the allocator reference type
+            is to `const`) to construct its own parent node or its own child
+            nodes if and when invoking its respective creation methods.
+        ]
+        [
+            The initializer list of the `Node` move constructor with allocator
+            must be able to call this constructor.
+        ]
+        [Linear with respect to the number of children]
+    ]
+    [
+        [Base descendant cloning]
+        [`base.clone_descendants(copy)`]
+        [`void`]
+        [
+            Structurally modifies the invoking node so that it is a deep copy
+            of the specified node.
+        ]
+        [
+            The body of the `Node` copy constructor must be able to call this
+            method.
+        ]
+        [Linear with respect to the number of descendants]
+    ]
+    [
+        [Base descendant movement]
+        [`base.move_descendants(source)`]
+        [`void`]
+        [
+            Structurally modifies the invoking node so that it stores the
+            contents of the specified node.
+        ]
+        [
+            The body of the `Node` move constructor must be able to call this
+            method.
+        ]
+        [Linear with respect to the number of children]
+    ]
+    [
+        [Base copy assignment]
+        [`base.copy_assign(copy)`]
+        [`void`]
+        [
+            Structurally modifies the invoking node so that it is a deep copy
+            of the specified node.
+        ]
+        [
+            The body of the `Node` copy assignment operator must be able
+            to call this method.
+        ]
+        [Linear with respect to the number of descendants]
+    ]
+    [
+        [Base move assignment]
+        [`base.move_assign(source)`]
+        [`void`]
+        [
+            Structurally modifies the invoking node so that it stores the
+            contents of the specified node.
+        ]
+        [
+            The body of the `Node` move assignment operator must be able
+            to call this method.
+        ]
+        [Linear with respect to the number of children]
+    ]
+    [
+        [Assignment notification]
+        [`base.on_post_assign()`]
+        [`void`]
+        [
+            Updates any `Node`-specific information invalidated by `Base` copy
+            or move assignment.  In practice, propagates `Base`-specific values
+            affected by the assignment up the tree node's chain of ancestors.
+        ]
+        [
+            The body of the `Node` copy or move assignment operator must be
+            able to call this method.
+        ]
+        [Linear with respect to the number of ancestors]
+    ]
+    [
+        [Key-value modified notification]
+        [`base.on_post_modify_value(Key())`]
+        [`void`]
+        [
+            Updates any `Node`-specific information invalidated by operations
+            that modify the value that the tree node associates with the
+            specified key.
+        ]
+        [
+            The body of the `Node` key-value modification function must be able
+            to call this method, and [^_result_of__has_key_<Node,Key>] must be
+            equivalent to __mpl_true__.
+        ]
+        [Linear with respect to the number of ancestors]
+    ]
+    [
+        [Key-value propagated notification]
+        [`base.on_post_propagate_value(Key())`]
+        [`void`]
+        [
+            Updates any `Node`-specific information invalidated by operations
+            that propagate the value that the tree node associates with the
+            specified key up the tree node's chain of ancestors.
+        ]
+        [
+            [^_result_of__has_key_<Node,Key>] must be equivalent to
+            __mpl_true__.
+        ]
+        [Linear with respect to the number of ancestors]
+    ]
+    [
+        [Key-value once-propagated notification]
+        [`base.on_post_propagate_value_once(Key())`]
+        [`void`]
+        [
+            Updates any `Node`-specific information invalidated by operations
+            that propagate the value that the tree node associates with the
+            specified key up to the tree node's parent.
+        ]
+        [
+            [^_result_of__has_key_<Node,Key>] must be equivalent to
+            __mpl_true__.
+        ]
+        [Constant]
+    ]
+    [
+        [Insertion notification]
+        [`base.on_post_inserted(itr, bic)`]
+        [`void`]
+        [
+            Updates any `Node`-specific information invalidated by operations
+            that insert or emplace the invoking node.  The specified iterator
+            points to this node.
+        ]
+        [
+            The body of any `Node` insertion or emplacement member function
+            must be able to call this method.
+        ]
+        [
+            Amortized constant if `BIC::value == true`, linear with respect to
+            the number of siblings otherwise
+        ]
+    ]
+    [
+        [Range insertion notification]
+        [`base.on_post_insert(itr, itr_end, bic)`]
+        [`void`]
+        [
+            Updates any `Node`-specific information invalidated by operations
+            that insert or emplace the nodes in the specified range.
+        ]
+        [
+            The body of any `Node` insertion or emplacement member function
+            must be able to call this method.
+        ]
+        [
+            Amortized constant if `BIC::value == true`, linear with respect to
+            the number of siblings otherwise
+        ]
+    ]
+    [
+        [Erasure notification]
+        [`base.on_post_erase(bic)`]
+        [`void`]
+        [
+            Updates any `Node`-specific information invalidated by operations
+            that remove the specified children and their descendants from a
+            node.
+        ]
+        [
+            The body of any `Node` erasure member function must be able to call
+            this method.
+        ]
+        [
+            Linear with respect to the number of children plus the number of
+            ancestors
+        ]
+    ]
+    [
+        [Clear notification]
+        [`base.on_post_clear()`]
+        [`void`]
+        [
+            Updates any `Node`-specific information invalidated by operations
+            that remove all descendants from a node.
+        ]
+        [
+            The body of the `Node::clear()` member function must be able
+            to call this method.
+        ]
+        [
+            Linear with respect to the number of children removed plus the
+            number of ancestors
+        ]
+    ]
+    [
+        [Left rotation notification]
+        [`base.on_post_rotate_left()`]
+        [`void`]
+        [
+            Updates any `Node`-specific information invalidated by operations
+            that rotate a node to the left.
+        ]
+        [
+            The body of the `Node::rotate_left()` member function must be able
+            to call this method.
+        ]
+        [Linear with respect to the number of ancestors]
+    ]
+    [
+        [Right rotation notification]
+        [`base.on_post_rotate_right()`]
+        [`void`]
+        [
+            Updates any `Node`-specific information invalidated by operations
+            that rotate a node to the right.
+        ]
+        [
+            The body of the `Node::rotate_right()` member function must be able
+            to call this method.
+        ]
+        [Linear with respect to the number of ancestors]
+    ]
+]
+[endsect] [/ Valid Expressions and Semantics]
+
+[section Models]
+[itemized_list
+    [__binary_node_base__]
+    [__nary_node_base__]
+    [__associative_node_base__]
+    [__tree_node_with_accumulation_base__]
+    [__tree_node_with_count_base__]
+    [__tree_node_with_height_base__]
+    [__tree_node_with_position_base__]
+    [__tree_node_with_red_black_flag_base__]
+]
+[endsect]
+
+[endsect] [/ Base Tree Node]
+
Added: sandbox/tree_node/libs/tree_node/doc/concept_base_type_generator.qbk
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ sandbox/tree_node/libs/tree_node/doc/concept_base_type_generator.qbk	2013-07-07 14:52:52 EDT (Sun, 07 Jul 2013)	(r84977)
@@ -0,0 +1,75 @@
+[/=============================================================================
+    Copyright (C) 2011-2013 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:base_type_generator Base Type Generator]
+
+[section Description]
+A [*Base Type Generator] is a __Metafunction_Class__ that returns a
+__Base_Tree_Node__ from which __Tree_Node__ adaptor types can inherit the
+necessary functionality.
+[endsect]
+
+[variablelist Notation
+    [
+        [`Generator`]
+        [A type that models the [*Base Type Generator] concept.]
+    ]
+    [
+        [`Derived`]
+        [
+            The most descendant type that will inherit from the return type of
+            `Generator`.
+        ]
+    ]
+    [
+        [`Key`]
+        [The key type of the __Associative_Tree_Node__ to be returned.]
+    ]
+    [
+        [`Data`]
+        [The data type of the __Tree_Node__ to be returned.]
+    ]
+]
+
+[section:expressions Valid Expressions and Semantics]
+[table
+    [[Name][Expression][Return Type]]
+    [
+        [Non-associative invocation]
+        [[^_mpl_apply_wrap2_<Generator,Derived,Data>::type]]
+        [
+            A __Non_Associative_Tree_Node__ model whose `traits::data_type` is
+            the same as `Data`.
+        ]
+    ]
+    [
+        [Associative invocation]
+        [[^_mpl_apply_wrap3_<Generator,Derived,Key,Data>::type]]
+        [
+            An __Associative_Tree_Node__ model whose `traits::key_type` is the
+            same as `Key` and whose `traits::data_type` is the same as `Data`.
+        ]
+    ]
+]
+[endsect]
+
+[section Models]
+[itemized_list
+    [__binary_node_base_gen__]
+    [__nary_node_base_gen__]
+    [__associative_node_base_gen__]
+    [__tree_node_with_accumulation_base_gen__]
+    [__tree_node_with_count_base_gen__]
+    [__tree_node_with_height_base_gen__]
+    [__tree_node_with_position_base_gen__]
+    [__tree_node_with_red_black_flag_base_gen__]
+]
+[endsect]
+
+[endsect] [/ Base Type Generator]
+
Added: sandbox/tree_node/libs/tree_node/doc/concept_binary_tree_node.qbk
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ sandbox/tree_node/libs/tree_node/doc/concept_binary_tree_node.qbk	2013-07-07 14:52:52 EDT (Sun, 07 Jul 2013)	(r84977)
@@ -0,0 +1,315 @@
+[/=============================================================================
+    Copyright (C) 2011-2013 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:binary_tree_node Binary Tree Node]
+
+[section Description]
+Models of this concept store at most two child nodes: left and right.  The
+operations that this concept defines include access to these children and
+rotations that use the appropriate child as a pivot node.
+[endsect]
+
+[section Refinement of]
+[itemized_list
+    [__Non_Associative_Tree_Node__]
+    [__Reversible_Tree_Node__]
+]
+[endsect]
+
+[variablelist Notation
+    [[`Node`][A type that models the [*Binary Tree Node] concept.]]
+    [[`node`][An object of type `Node&`.]]
+    [[`const_node`][An object of type `Node const&`.]]
+    [[`rvalue_node`][An object of type `Node&&`.]]
+    [[`Args`][The type of `args`.]]
+    [
+        [`args`]
+        [
+            Arguments to be forwarded to the appropriate
+            `Node::traits::data_type` constructor.
+        ]
+    ]
+]
+
+[section:types Associated Types]
+No additional types beyond those defined in the __Non_Associative_Tree_Node__
+and __Reversible_Tree_Node__ concepts.
+[endsect]
+
+[section:expressions Valid Expressions and Semantics]
+In addition to the expressions defined in the __Non_Associative_Tree_Node__
+and __Reversible_Tree_Node__ concepts, the following expressions must be valid.
+
+[table
+    [
+        [Name]
+        [Expression]
+        [Return Type]
+        [Semantics]
+        [Type requirements]
+        [__Runtime_Complexity__]
+    ]
+    [
+        [Parent-of-left creation]
+        [``
+            node.emplace_parent_of_left(
+                _boost_forward_<Args>(args)...
+            )
+        ``]
+        [``
+            Node::pointer
+        ``]
+        [
+            Creates and returns a tree node to be stored as the parent of the
+            invoking node.  The node returned will initialize its data with the
+            specified arguments.  The invoking node will become the left child
+            of the new node.
+            
+            If a parent existed previously, that node shall become the parent
+            of the new node, and the new node shall take the place of the
+            invoking node.
+        ]
+        []
+        [Amortized constant]
+    ]
+    [
+        [Parent-of-right creation]
+        [``
+            node.emplace_parent_of_right(
+                _boost_forward_<Args>(args)...
+            )
+        ``]
+        [``
+            Node::pointer
+        ``]
+        [
+            Creates and returns a tree node to be stored as the parent of the
+            invoking node.  The node returned will initialize its data with the
+            specified arguments.  The invoking node will become the right child
+            of the new node.
+            
+            If a parent existed previously, that node shall become the parent
+            of the new node, and the new node shall take the place of the
+            invoking node.
+        ]
+        []
+        [Amortized constant]
+    ]
+    [
+        [Left child creation]
+        [``
+            node.emplace_left(
+                _boost_forward_<Args>(args)...
+            )
+        ``]
+        [``
+            Node::iterator
+        ``]
+        [
+            Creates and returns a tree node to be stored as the left child of
+            the invoking node.  The node returned will initialize its data with
+            the specified arguments.
+
+            If a left child existed previously, that node shall become the left
+            child of the new node.
+        ]
+        []
+        [Amortized constant]
+    ]
+    [
+        [Left child copy creation]
+        [``
+            node.insert_left(const_node)
+        ``]
+        [``
+            Node::iterator
+        ``]
+        [
+            Creates and returns a deep copy of `const_node` to be stored as the
+            left child of the invoking node.
+
+            If a left child existed previously, that node shall become the
+            left-most descendant of the new node, or the first node encountered
+            during a forward in-order traversal of the new node's descendants.
+        ]
+        [
+            The data type must model the __Copy_Constructible__ and __Movable__
+            concepts.
+        ]
+        [Linear with respect to the number of descendants of `const_node`]
+    ]
+    [
+        [Right child creation]
+        [``
+            node.emplace_right(
+                _boost_forward_<Args>(args)...
+            )
+        ``]
+        [``
+            Node::iterator
+        ``]
+        [
+            Creates and returns a tree node to be stored as the right child of
+            the invoking node.  The node returned will initialize its data with
+            the specified arguments.
+
+            If a right child existed previously, that node shall become the
+            right child of the new node.
+        ]
+        []
+        [Amortized constant]
+    ]
+    [
+        [Right child copy creation]
+        [``
+            node.insert_right(const_node)
+        ``]
+        [``
+            Node::iterator
+        ``]
+        [
+            Creates and returns a deep copy of `const_node` to be stored as the
+            right child of the invoking node.
+
+            If a right child existed previously, that node shall become the
+            right-most descendant of the new node, or the last node encountered
+            during a forward in-order traversal of the new node's descendants.
+        ]
+        [
+            The data type must model the __Copy_Constructible__ and __Movable__
+            concepts.
+        ]
+        [Linear with respect to the number of descendants of `const_node`]
+    ]
+    [
+        [Left child read-only access]
+        [``
+            const_node.get_left_child_ptr()
+        ``]
+        [``
+            Node::const_pointer
+        ``]
+        [
+            Returns the left child of the tree node, or a null pointer if no
+            such tree node exists.
+        ]
+        []
+        [Amortized constant]
+    ]
+    [
+        [Left child access]
+        [``
+            node.get_left_child_ptr()
+        ``]
+        [``
+            Node::pointer
+        ``]
+        [
+            Returns the left child of the tree node, or a null pointer if no
+            such tree node exists.
+        ]
+        []
+        [Amortized constant]
+    ]
+    [
+        [Right child read-only access]
+        [``
+            const_node.get_right_child_ptr()
+        ``]
+        [``
+            Node::const_pointer
+        ``]
+        [
+            Returns the right child of the tree node, or a null pointer if no
+            such tree node exists.
+        ]
+        []
+        [Amortized constant]
+    ]
+    [
+        [Right child access]
+        [``
+            node.get_right_child_ptr()
+        ``]
+        [``
+            Node::pointer
+        ``]
+        [
+            Returns the right child of the tree node, or a null pointer if no
+            such tree node exists.
+        ]
+        []
+        [Amortized constant]
+    ]
+    [
+        [Rotate left]
+        [``
+            node.rotate_left()
+        ``]
+        [``
+            Node::pointer
+        ``]
+        [
+            Rotates the tree node in its hierarchy so that its right child, the
+            pivot node, becomes its parent.  The left child of the pivot node
+            becomes the right child of the tree node.  Returns the pivot node.
+        ]
+        []
+        [Amortized constant]
+    ]
+    [
+        [Rotate right]
+        [``
+            node.rotate_right()
+        ``]
+        [``
+            Node::pointer
+        ``]
+        [
+            Rotates the tree node in its hierarchy so that its left child, the
+            pivot node, becomes its parent.  The right child of the pivot node
+            becomes the left child of the tree node.  Returns the pivot node.
+        ]
+        []
+        [Amortized constant]
+    ]
+    [
+        [Remove left child]
+        [``
+            node.erase_left()
+        ``]
+        [``
+            void
+        ``]
+        [Removes the left child from the tree node.]
+        []
+        [Linear with respect to the number of descendants of the left child]
+    ]
+    [
+        [Remove right child]
+        [``
+            node.erase_right()
+        ``]
+        [`void
+        ``]
+        [Removes the right child from the tree node.]
+        []
+        [Linear with respect to the number of descendants of the right child]
+    ]
+]
+[endsect]
+
+[section Models]
+[itemized_list
+    [__binary_node__]
+    [__binary_node_base__]
+]
+[endsect]
+
+[endsect] [/ Binary Tree Node]
+
Added: sandbox/tree_node/libs/tree_node/doc/concept_copyable_tree_node.qbk
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ sandbox/tree_node/libs/tree_node/doc/concept_copyable_tree_node.qbk	2013-07-07 14:52:52 EDT (Sun, 07 Jul 2013)	(r84977)
@@ -0,0 +1,134 @@
+[/=============================================================================
+    Copyright (C) 2013 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:copyable_tree_node Copyable Tree Node]
+
+[section Description]
+Models of this concept are meant for external usage by applications or by other
+data structures.
+
+In practice, each [*Copyable Tree Node] model must do the following:
+
+[itemized_list
+    [Inherit from the corresponding __Base_Tree_Node__ model.]
+    [Take in the data type as template parameters.]
+    [
+        Also take in the key type if (possibly) modeling the
+        __Associative_Tree_Node__ concept.
+    ]
+    [
+        Use the __TREE_NODE_COPYABLE_AND_MOVABLE__,
+        __TREE_NODE_EMPLACEMENT_CTOR_INLINE_DEF__, and
+        __TREE_NODE_EMPLACEMENT_CTOR_W_ALLOC_INLINE_DEF__ macros to support
+        C++03 compilers.
+    ]
+]
+
+[endsect]
+
+[section Refinement of]
+[itemized_list
+    [__Tree_Node__]
+    [__Copy_Constructible__]
+]
+[endsect]
+
+[variablelist Notation
+    [[`Node`][A type that models the [*Copyable Tree Node] concept.]]
+    [[`node`][An object of type `Node&`.]]
+    [[`const_node`][An object of type `Node const&`.]]
+    [[`alloc`][An object of type `Node::traits::allocator_reference`.]]
+]
+
+[section:types Associated Types]
+No additional types beyond those defined in the __Tree_Node__ and
+__Copy_Constructible__ concepts.
+[endsect]
+
+[section:expressions Valid Expressions and Semantics]
+In addition to the expressions defined in the __Tree_Node__ and
+__Copy_Constructible__ concepts, the following expressions must be valid.
+
+[table
+    [
+        [Name]
+        [Expression]
+        [Return Type]
+        [Semantics]
+        [Type requirements]
+        [__Runtime_Complexity__]
+    ]
+    [
+        [Copy constructor]
+        [``
+            Node(const_node)
+        ``]
+        []
+        [Constructs a deep copy of the specified node.]
+        [
+            The data type must be __Copy_Constructible__, the
+            __container_allocator_traits__ static method
+            `select_on_container_copy_construction` must be callable when
+            passed in the allocator of the specified node, and the allocator
+            reference type must be `Node::traits::allocator const&`.
+        ]
+        []
+    ]
+    [
+        [Copy constructor with allocator]
+        [``
+            Node(
+                boost::container::allocator_arg
+              , alloc
+              , const_node
+            )
+        ``]
+        []
+        [
+            Constructs a deep copy of the specified node.  The new node will
+            use the specified allocator (if the allocator reference type is
+            mutable) or a copy of it (if the allocator reference type is to
+            `const`) to construct its own parent node or its own child nodes
+            if and when invoking its respective creation methods.
+        ]
+        [The data type must be __Copy_Constructible__.]
+        []
+    ]
+]
+[endsect] [/ Valid Expressions and Semantics]
+
+[section Models]
+[itemized_list
+    [__binary_node__ if `T` is __Copy_Constructible__]
+    [__nary_node__ if `T` is __Copy_Constructible__]
+    [__associative_node__ if `Data` is __Copy_Constructible__]
+    [
+        __tree_node_with_accumulation__ if `BaseGenerator` returns a [*Copyable
+        Tree Node] model
+    ]
+    [
+        __tree_node_with_count__ if `BaseGenerator` returns a [*Copyable Tree
+        Node] model
+    ]
+    [
+        __tree_node_with_height__ if `BaseGenerator` returns a [*Copyable Tree
+        Node] model
+    ]
+    [
+        __tree_node_with_position__ if `BaseGenerator` returns a [*Copyable
+        Tree Node] model
+    ]
+    [
+        __tree_node_with_red_black_flag__ if `BaseGenerator` returns a
+        [*Copyable Tree Node] model
+    ]
+]
+[endsect]
+
+[endsect] [/ Copyable Tree Node]
+
Added: sandbox/tree_node/libs/tree_node/doc/concept_descendant_iterator.qbk
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ sandbox/tree_node/libs/tree_node/doc/concept_descendant_iterator.qbk	2013-07-07 14:52:52 EDT (Sun, 07 Jul 2013)	(r84977)
@@ -0,0 +1,85 @@
+[/=============================================================================
+    Copyright (C) 2011-2013 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
+__Non_Associative_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&`.]
+    ]
+]
+
+[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: it must be the
+appropriate iterator type of `Node`.
+[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 node]
+        [``
+            Iterator(node)
+            Iterator itr(node)
+        ``]
+        []
+        [
+            Constructs an iterator that will iterate through the descendants of
+            the specified node.
+        ]
+    ]
+]
+[endsect]
+
+[section Models]
+[itemized_list
+    [__breadth_first_descendant_iterator__]
+    [__pre_order_descendant_iterator__]
+    [__post_order_descendant_iterator__]
+    [__depth_first_descendant_iterator__]
+]
+[endsect]
+
+[endsect] [/ Tree Node Descendant Iterator]
+
Added: sandbox/tree_node/libs/tree_node/doc/concept_full_iterator.qbk
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ sandbox/tree_node/libs/tree_node/doc/concept_full_iterator.qbk	2013-07-07 14:52:52 EDT (Sun, 07 Jul 2013)	(r84977)
@@ -0,0 +1,71 @@
+[/=============================================================================
+    Copyright (C) 2011-2013 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`][The value type of `Iterator`.]]
+    [[`node`][An object of type `Node&`.]]
+]
+
+[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: it 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 node]
+        [``
+            Iterator(node)
+            Iterator itr(node)
+        ``]
+        []
+        [
+            Constructs an iterator that will iterate through the specified node
+            and its descendants.
+        ]
+    ]
+]
+[endsect]
+
+[section Models]
+[itemized_list
+    [__breadth_first_iterator__]
+    [__pre_order_iterator__]
+    [__post_order_iterator__]
+    [__in_order_iterator__]
+    [__depth_first_iterator__]
+]
+[endsect]
+
+[endsect] [/ Full Tree Node Iterator]
+
Added: sandbox/tree_node/libs/tree_node/doc/concept_indexable_container.qbk
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ sandbox/tree_node/libs/tree_node/doc/concept_indexable_container.qbk	2013-07-07 14:52:52 EDT (Sun, 07 Jul 2013)	(r84977)
@@ -0,0 +1,75 @@
+[/=============================================================================
+    Copyright (C) 2013 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:indexable_container Indexable Container]
+
+[section Description]
+An [*Indexable Container] is a __Reversible_Container__ whose iterator type is
+an __Indexable_Iterator__.  It provides sub-linear time access to arbitrary
+elements.
+[endsect]
+
+[section Refinement of]
+__Reversible_Container__
+[endsect]
+
+[section:types Associated Types]
+None beyond those defined in __Reversible_Container__.  However, the
+requirements for the iterator type are strengthened: it must be an
+__Indexable_Iterator__.
+[endsect]
+
+[variablelist Notation
+    [[`X`][A type that models the [*Indexable Container] concept.]]
+    [[`a`][An object of type `X`.]]
+]
+
+[section:expressions Valid Expressions and Semantics]
+In addition to the expressions defined in the __Reversible_Container__ concept,
+the following expressions must be valid.
+
+[table
+    [
+        [Name]
+        [Expression]
+        [Return Type]
+        [Semantics]
+        [Type Requirements]
+        [Precondition]
+        [Invariant]
+        [__Runtime_Complexity__]
+    ]
+    [
+        [Element access]
+        [`a[n]`]
+        [`reference` if `a` is mutable, `const_reference` otherwise]
+        [Returns the `n`th element from the beginning of the container.]
+        [`n` must be convertible to `size_type`]
+        [`0 < n <= a.size()`]
+        [Equivalent to `*(a.begin() + n)`.]
+        [Sublinear]
+    ]
+]
+[endsect] [/ Valid Expressions and Semantics]
+
+[section Models]
+[itemized_list
+    [
+        __binode_container__ if the value associated with __count_key__ exists
+        for the return type of `NodeGenerator`
+    ]
+    [__binode_associative_container__]
+    [__binode_set__]
+    [__binode_map__]
+    [__binode_multiset__]
+    [__binode_multimap__]
+]
+[endsect]
+
+[endsect] [/ Tree Node]
+
Added: sandbox/tree_node/libs/tree_node/doc/concept_indexable_iterator.qbk
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ sandbox/tree_node/libs/tree_node/doc/concept_indexable_iterator.qbk	2013-07-07 14:52:52 EDT (Sun, 07 Jul 2013)	(r84977)
@@ -0,0 +1,163 @@
+[/=============================================================================
+    Copyright (C) 2013 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:indexable_iterator Indexable Iterator]
+
+[section Description]
+An [*Indexable Iterator] is an iterator that provides both increment and
+decrement as well as sublinear-time operators for moving forward and backward
+in arbitrary-sized steps.  The runtime complexity requirement is the only
+major difference between an [*Indexable Iterator] and a
+__Random_Access_Iterator__.
+[endsect]
+
+[section Refinement of]
+[itemized_list
+    [__Bidirectional_Iterator__]
+    [__Less_Than_Comparable__]
+]
+[endsect]
+
+[section:types Associated Types]
+No additional types beyond those defined in the __Bidirectional_Iterator__ and
+__Less_Than_Comparable__ concepts.
+[endsect]
+
+[variablelist Notation
+    [[`Iterator`][A type that models the [*Indexable Iterator] concept.]]
+    [[`i`, `j`][Objects of type `Iterator`.]]
+    [[`T`][The value type of `Iterator`.]]
+    [[`t`][An object of type `T`.]]
+    [[`Distance`][The distance type of `Iterator`.]]
+    [[`n`][An object of type `Distance`.]]
+]
+
+[section:expressions Valid Expressions and Semantics]
+In addition to the expressions defined in the __Bidirectional_Iterator__
+concept, the following expressions must be valid.
+
+[table
+    [
+        [Name]
+        [Expression]
+        [Return Type]
+        [Semantics]
+        [Type Requirements]
+        [Precondition]
+        [Postcondition]
+        [__Runtime_Complexity__]
+    ]
+    [
+        [Iterator addition assignment]
+        [`i += n`]
+        [`X&`]
+        [
+            If `n > 0`, equivalent to executing `++i` `n` times.  If `n < 0`,
+            equivalent to executing `--i` `n` times. If `n == 0`, this is a
+            null operation.
+        ]
+        []
+        [
+            Including `i` itself, there must be `n` dereferenceable or
+            past-the-end iterators following or preceding `i`, depending on
+            whether `n` is positive or negative.
+        ]
+        [`i` is dereferenceable or past-the-end.]
+        [Sublinear]
+    ]
+    [
+        [Iterator addition]
+        [`i + n` or `n + i`]
+        [`X`]
+        [
+            Equivalent to `{ X tmp = i; return tmp += n; }`.  The two forms
+            `i + n` and `n + i` are identical.
+        ]
+        []
+        [Same as for `i += n`]
+        [The result is dereferenceable or past-the-end.]
+        [Sublinear]
+    ]
+    [
+        [Iterator subtraction assignment]
+        [`i -= n`]
+        [`X&`]
+        [Equivalent to `i += (-n)`.]
+        []
+        [
+            Including `i` itself, there must be `n` dereferenceable or
+            past-the-end iterators preceding or following `i`, depending on
+            whether `n` is positive or negative.
+        ]
+        [`i` is dereferenceable or past-the-end.]
+        [Sublinear]
+    ]
+    [
+        [Iterator subtraction]
+        [`i - n`]
+        [`X`]
+        [Equivalent to `{ X tmp = i; return tmp -= n; }`.]
+        []
+        [Same as for `i -= n`]
+        [The result is dereferenceable or past-the-end.]
+        [Sublinear]
+    ]
+    [
+        [Difference]
+        [`i - j`]
+        [`Distance`]
+        [Returns a number `n` such that `i == j + n`.]
+        []
+        [
+            Either `i` is reachable from `j` or `j` is reachable from `i`, or
+            both.
+        ]
+        []
+        [Sublinear]
+    ]
+    [
+        [Element operator]
+        [`i[n]`]
+        [Convertible to `T`]
+        [Equivalent to `*(i + n)`.]
+        []
+        [`i + n` exists and is dereferenceable.]
+        []
+        [Sublinear]
+    ]
+    [
+        [Element assignment]
+        [`i[n] = t`]
+        [Convertible to `T`]
+        [Equivalent to `*(i + n)`.]
+        [`X` is mutable.]
+        [`i + n` exists and is dereferenceable.]
+        [`i[n]` is a copy of `t`.]
+        [Sublinear]
+    ]
+]
+
+In addition, the domain of the less-than comparison expression `i < j` is the
+group of iterators that are reachable from each other: that is, either `i` is
+reachable from `j` or `j` is reachable from `i`, or both.
+
+The __Forward_Iterator__ and __Reverse_Iterator__ requirements that the
+increment and decrement operators must exhibit constant time complexity have
+been relaxed; they now need only exhibit linear time complexity with respect
+to the number of descendants in the worst case.
+[endsect]
+
+[section Models]
+[itemized_list
+    [The iterator types of __binode_container__]
+    [The iterator types of __binode_associative_container__]
+]
+[endsect]
+
+[endsect] [/ Tree Node Iterator]
+
Added: sandbox/tree_node/libs/tree_node/doc/concept_iterator.qbk
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ sandbox/tree_node/libs/tree_node/doc/concept_iterator.qbk	2013-07-07 14:52:52 EDT (Sun, 07 Jul 2013)	(r84977)
@@ -0,0 +1,107 @@
+[/=============================================================================
+    Copyright (C) 2011-2013 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&`.]]
+]
+
+[section:types Associated Types]
+No additional types beyond those defined in the __Forward_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 node]
+        [``
+            Iterator(node)
+            Iterator itr(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]
+    ]
+    [
+        [Node dereference]
+        [``
+            _dereference_iterator_(itr)
+        ``]
+        [`Node&` or `Node const&`, depending on the mutability of `itr`.]
+        [
+            Returns a reference to the __Tree_Node__ to which `itr` currently
+            points.
+        ]
+        [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]
+[itemized_list
+    [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_movable_tree_node.qbk
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ sandbox/tree_node/libs/tree_node/doc/concept_movable_tree_node.qbk	2013-07-07 14:52:52 EDT (Sun, 07 Jul 2013)	(r84977)
@@ -0,0 +1,135 @@
+[/=============================================================================
+    Copyright (C) 2013 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:movable_tree_node Movable Tree Node]
+
+[section Description]
+Models of this concept are meant for external usage by applications or by other
+data structures.
+
+In practice, each [*Movable Tree Node] model must do the following:
+
+[itemized_list
+    [Inherit from the corresponding __Base_Tree_Node__ model.]
+    [Take in the data type as template parameters.]
+    [
+        Also take in the key type if (possibly) modeling the
+        __Associative_Tree_Node__ concept.
+    ]
+    [
+        Use the __TREE_NODE_COPYABLE_AND_MOVABLE__,
+        __TREE_NODE_EMPLACEMENT_CTOR_INLINE_DEF__, and
+        __TREE_NODE_EMPLACEMENT_CTOR_W_ALLOC_INLINE_DEF__ macros to support
+        C++03 compilers.
+    ]
+]
+
+[endsect]
+
+[section Refinement of]
+[itemized_list
+    [__Tree_Node__]
+    [__Movable__]
+]
+[endsect]
+
+[variablelist Notation
+    [[`Node`][A type that models the [*Movable Tree Node] concept.]]
+    [[`node`][An object of type `Node&`.]]
+    [[`rvalue_node`][An object of type `Node&&`.]]
+    [[`alloc`][An object of type `Node::traits::allocator_reference`.]]
+]
+
+[section:types Associated Types]
+No additional types beyond those defined in the __Tree_Node__ and __Movable__
+concepts.
+[endsect]
+
+[section:expressions Valid Expressions and Semantics]
+In addition to the expressions defined in the __Tree_Node__ and __Movable__
+concepts, the following expressions must be valid.
+
+[table
+    [
+        [Name]
+        [Expression]
+        [Return Type]
+        [Semantics]
+        [Type requirements]
+        [__Runtime_Complexity__]
+    ]
+    [
+        [Move constructor]
+        [``
+            Node(rvalue_node)
+        ``]
+        []
+        [Transfers the contents of the specified node to this one.]
+        [
+            The data type must be __Movable__, the
+            __container_allocator_traits__ static method
+            `select_on_container_copy_construction` must be callable when
+            passed in the allocator of the specified node, and the allocator
+            reference type must be `Node::traits::allocator const&`.
+        ]
+        []
+    ]
+    [
+        [Move constructor with allocator]
+        [``
+            Node(
+                boost::container::allocator_arg
+              , alloc
+              , rvalue_node
+            )
+        ``]
+        []
+        [
+            Transfers the contents of the specified node to this one.  The
+            new node will use the specified allocator (if the allocator
+            reference type is mutable) or a copy of it (if the allocator
+            reference type is to `const`) to construct its own parent node or
+            its own child nodes if and when invoking its respective creation
+            methods.
+        ]
+        [The data type must be __Movable__.]
+        []
+    ]
+]
+[endsect] [/ Valid Expressions and Semantics]
+
+[section Models]
+[itemized_list
+    [__binary_node__ if `T` is __Movable__]
+    [__nary_node__ if `T` is __Movable__]
+    [__associative_node__ if `Data` is __Movable__]
+    [
+        __tree_node_with_accumulation__ if `BaseGenerator` returns a [*Movable
+        Tree Node] model
+    ]
+    [
+        __tree_node_with_count__ if `BaseGenerator` returns a [*Movable Tree
+        Node] model
+    ]
+    [
+        __tree_node_with_height__ if `BaseGenerator` returns a [*Movable Tree
+        Node] model
+    ]
+    [
+        __tree_node_with_position__ if `BaseGenerator` returns a [*Movable Tree
+        Node] model
+    ]
+    [
+        __tree_node_with_red_black_flag__ if `BaseGenerator` returns a
+        [*Movable Tree Node] model
+    ]
+]
+[endsect]
+
+[endsect] [/ Movable Tree Node]
+
Added: sandbox/tree_node/libs/tree_node/doc/concept_nary_tree_node.qbk
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ sandbox/tree_node/libs/tree_node/doc/concept_nary_tree_node.qbk	2013-07-07 14:52:52 EDT (Sun, 07 Jul 2013)	(r84977)
@@ -0,0 +1,182 @@
+[/=============================================================================
+    Copyright (C) 2011-2013 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:nary_tree_node N-ary Tree Node]
+
+[section Description]
+Models of this concept store arbitrary numbers of children and provide simple
+child insertion expressions.
+[endsect]
+
+[section Refinement of]
+__Non_Associative_Tree_Node__
+[endsect]
+
+[variablelist Notation
+    [[`Node`][A type that models the [*N-ary Tree Node] concept.]]
+    [[`dest_node`, `src_node`][Objects of type `Node&`.]]
+    [[`const_node`][An object of type `Node const&`.]]
+    [[`rvalue_node`][An object of type `Node&&`.]]
+    [[`pos`, `itr`, `itr_end`][Objects of type `Node::iterator`.]]
+    [[`Args`][The type of `args`.]]
+    [
+        [`args`]
+        [
+            Arguments to be forwarded to the appropriate
+            `Node::traits::data_type` constructor.
+        ]
+    ]
+]
+
+[section:types Associated Types]
+No additional types beyond those defined in the __Non_Associative_Tree_Node__
+concept.
+[endsect]
+
+[section:expressions Valid Expressions and Semantics]
+In addition to the expressions defined in the __Non_Associative_Tree_Node__
+concept, the following expressions must be valid.
+
+[table
+    [
+        [Name]
+        [Expression]
+        [Return Type]
+        [Semantics]
+        [Requirements]
+        [__Runtime_Complexity__]
+    ]
+    [
+        [Child creation]
+        [``
+            dest_node.emplace(
+                _boost_forward_<Args>(args)...
+            )
+        ``]
+        [``
+            Node::iterator
+        ``]
+        [
+            Creates and returns a tree node to be stored in the range of
+            children of `dest_node`.  The node returned will initialize
+            its data with the specified arguments.
+        ]
+        []
+        [Logarithmic]
+    ]
+    [
+        [Child copy creation]
+        [``
+            dest_node.insert(const_node)
+        ``]
+        [``
+            Node::iterator
+        ``]
+        [
+            Creates and returns a deep copy of `const_node` to be stored in the
+            range of children of `dest_node`.
+        ]
+        [
+            The data type must model the __Copy_Constructible__ and __Movable__
+            concepts.
+        ]
+        [Linear with respect to the number of descendants of `const_node`]
+    ]
+    [
+        [Child move insertion]
+        [``
+            dest_node.insert(rvalue_node)
+        ``]
+        [``
+            Node::iterator
+        ``]
+        [Stores `rvalue_node` in the range of children of `dest_node`.]
+        [The data type must model the __Movable__ concept.]
+        [Logarithmic]
+    ]
+    [
+        [Splice node]
+        [``
+            dest_node.splice(pos, src_node)
+        ``]
+        [A __Boost_Range__ whose element type is `Node`]
+        [
+            Transfers all child nodes and their descendants from `src_node` to
+            `dest_node`, with `pos` as the insertion point.  Returns the range
+            of child nodes inserted.
+        ]
+        [
+            `pos` must be dereferenceable or past-the-end of the range of
+            children of `dest_node`.
+        ]
+        [Linear with respect to the number of children of `src_node`]
+    ]
+    [
+        [Splice single child]
+        [``
+            dest_node.splice(pos, src_node, itr)
+        ``]
+        [A __Boost_Range__ whose element type is `Node`]
+        [
+            Transfers the child node to which `itr` points, along with its
+            descendants, from `src_node` to `dest_node`, with `pos` as the
+            insertion point.  Returns a range containing the node inserted.
+        ]
+        [[itemized_list
+            [
+                `pos` must be dereferenceable or past-the-end of the range of
+                children of `dest_node`.
+            ]
+            [`itr` must point to a valid child node of `src_node`.]
+        ]]
+        []
+    ]
+    [
+        [Splice range]
+        [``
+            dest_node.splice(
+                pos
+              , src_node
+              , itr
+              , itr_end
+            )
+        ``]
+        [A __Boost_Range__ whose element type is `Node`]
+        [
+            Transfers all child nodes in the specified sub-range, along with
+            their descendants, from `src_node` to `dest_node`, with `pos` as
+            the insertion point.  Returns the range of child nodes inserted.
+        ]
+        [[itemized_list
+            [
+                `pos` must be dereferenceable or past-the-end of the range of
+                children of `dest_node`.
+            ]
+            [
+                `itr` and `itr_end` must refer to a valid sub-range of the
+                range of children of `src_node`.
+            ]
+            [
+                `pos` must point outside the sub-range referred to by `itr` and
+                `itr_end`.
+            ]
+        ]]
+        [Linear with respect to the size of the specified sub-range]
+    ]
+]
+[endsect]
+
+[section Models]
+[itemized_list
+    [__nary_node__]
+    [__nary_node_base__]
+]
+[endsect]
+
+[endsect] [/ N-ary Tree Node]
+
Added: sandbox/tree_node/libs/tree_node/doc/concept_node_type_generator.qbk
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ sandbox/tree_node/libs/tree_node/doc/concept_node_type_generator.qbk	2013-07-07 14:52:52 EDT (Sun, 07 Jul 2013)	(r84977)
@@ -0,0 +1,67 @@
+[/=============================================================================
+    Copyright (C) 2011-2012 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:node_type_generator Node Type Generator]
+
+[section Description]
+A [*Node Type Generator] is a __Metafunction_Class__ that returns a
+__Tree_Node__ model of which objects can be instantiated.
+[endsect]
+
+[variablelist Notation
+    [
+        [`Generator`]
+        [A type that models the [*Node Type Generator] concept.]
+    ]
+    [
+        [`Key`]
+        [The key type of the __Associative_Tree_Node__ to be returned.]
+    ]
+    [
+        [`Data`]
+        [The data type of the __Tree_Node__ to be returned.]
+    ]
+]
+
+[section:expressions Valid Expressions and Semantics]
+[table
+    [[Name][Expression][Return Type]]
+    [
+        [Non-associative invocation]
+        [[^_mpl_apply_wrap1_<Generator,Data>::type]]
+        [
+            A __Non_Associative_Tree_Node__ model whose `traits::data_type` is
+            the same as `Data`.
+        ]
+    ]
+    [
+        [Associative invocation]
+        [[^_mpl_apply_wrap2_<Generator,Key,Data>::type]]
+        [
+            An __Associative_Tree_Node__ model whose `traits::key_type` is the
+            same as `Key` and whose `traits::data_type` is the same as `Data`.
+        ]
+    ]
+]
+[endsect]
+
+[section Models]
+[itemized_list
+    [__binary_node_gen__]
+    [__nary_node_gen__]
+    [__associative_node_gen__]
+    [__tree_node_with_accumulation_gen__]
+    [__tree_node_with_count_gen__]
+    [__tree_node_with_height_gen__]
+    [__tree_node_with_position_gen__]
+    [__tree_node_with_red_black_flag_gen__]
+]
+[endsect]
+
+[endsect] [/ Node Type Generator]
+
Added: sandbox/tree_node/libs/tree_node/doc/concept_non_assoc_tree_node.qbk
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ sandbox/tree_node/libs/tree_node/doc/concept_non_assoc_tree_node.qbk	2013-07-07 14:52:52 EDT (Sun, 07 Jul 2013)	(r84977)
@@ -0,0 +1,44 @@
+[/=============================================================================
+    Copyright (C) 2011-2013 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:non_assoc_tree_node Non-Associative Tree Node]
+
+[section Description]
+Models of this concept provide access to their child nodes via iterator
+dereferencing.
+[endsect]
+
+[section Refinement of]
+__Tree_Node__
+[endsect]
+
+[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:
+
+[itemized_list
+    [The value type of `Node::iterator` must be `Node&`.]
+    [The value type of `Node::const_iterator` must be `Node const&`.]
+]
+[endsect]
+
+[section:expressions Valid Expressions and Semantics]
+None beyond those defined in the __Tree_Node__ concept.
+[endsect]
+
+[section Models]
+[itemized_list
+    [__binary_node__]
+    [__binary_node_base__]
+    [__nary_node__]
+    [__nary_node_base__]
+]
+[endsect]
+
+[endsect] [/ Non-Associative Tree Node]
+
Added: sandbox/tree_node/libs/tree_node/doc/concept_rvrsible_tree_node.qbk
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ sandbox/tree_node/libs/tree_node/doc/concept_rvrsible_tree_node.qbk	2013-07-07 14:52:52 EDT (Sun, 07 Jul 2013)	(r84977)
@@ -0,0 +1,196 @@
+[/=============================================================================
+    Copyright (C) 2013 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:reversible_tree_node Reversible Tree Node]
+
+[section Description]
+Objects of types that model both the __Tree_Node_Iterator__ and
+__Bidirectional_Iterator__ concepts can iterate over objects of types that
+model this concept.
+[endsect]
+
+[section Refinement of]
+__Tree_Node__
+[endsect]
+
+[variablelist Notation
+    [[`Node`][A type that models the [*Reversible Tree Node] concept.]]
+    [[`node`][An object of type `Node&`.]]
+    [[`const_node`][An object of type `Node const&`.]]
+]
+
+[section:types Associated Types]
+Two new types are introduced.
+
+[table
+    [[Name][Expression][Description][Requirements]]
+    [
+        [Reverse iterator type]
+        [`Node::reverse_iterator`]
+        [
+            The type of iterator used to iterate in reverse through the
+            children of a `Node` object.
+        ]
+        [
+            It must model the __Bidirectional_Iterator__ concept, and it must
+            be convertible to `Node::const_reverse_iterator`.
+        ]
+    ]
+    [
+        [Immutable reverse iterator type]
+        [`Node::const_reverse_iterator`]
+        [
+            The type of iterator used to iterate in reverse through the
+            children of a `Node const` object.
+        ]
+        [
+            It must model the __Bidirectional_Iterator__ concept, and it must
+            /not/ point to a mutable object.
+        ]
+    ]
+]
+
+In addition, the requirements for the iterator types are strengthened: they
+must also model the __Bidirectional_Iterator__ concept.
+[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]
+        [Return Type]
+        [Semantics]
+        [Type Requirements]
+        [__Runtime_Complexity__]
+    ]
+    [
+        [Children reverse range begin read-only access]
+        [``
+            const_node.crbegin()
+            const_node.rbegin()
+        ``]
+        [`Node::const_reverse_iterator`]
+        [
+            Returns an iterator pointing to the beginning of the reverse range
+            of children of the tree node.  If the range is empty, then the
+            iterator points past-the-end.
+        ]
+        []
+        [Constant]
+    ]
+    [
+        [Children reverse range begin access]
+        [`node.rbegin()`]
+        [`Node::reverse_iterator`]
+        [
+            Returns an iterator pointing to the beginning of the reverse range
+            of children of the tree node.  If the range is empty, then the
+            iterator points past-the-end.
+        ]
+        []
+        [Constant]
+    ]
+    [
+        [Children reverse range past-the-end read-only access]
+        [``
+            const_node.crend()
+            const_node.rend()
+        ``]
+        [`Node::const_reverse_iterator`]
+        [
+            Returns an iterator pointing past the end of the reverse range of
+            children of the tree node.
+        ]
+        []
+        [Constant]
+    ]
+    [
+        [Children reverse range past-the-end access]
+        [`node.rend()`]
+        [`Node::reverse_iterator`]
+        [
+            Returns an iterator pointing past the end of the reverse range of
+            children of the tree node.
+        ]
+        []
+        [Constant]
+    ]
+]
+[endsect] [/ Valid Expressions and Semantics]
+
+[section Models]
+[itemized_list
+    [__binary_node__]
+    [__binary_node_base__]
+    [
+        __nary_node__ if [^_container_gen_<Selector,_nary_node_>::type] returns
+        a __Reversible_Container__ model
+    ]
+    [
+        __nary_node_base__ if [^_container_gen_<Selector,Derived>::type]
+        returns a __Reversible_Container__ model
+    ]
+    [
+        __associative_node__ if
+        [^_container_gen_<Selector,Key,_associative_node_>::type] returns a
+        __Reversible_Container__ model
+    ]
+    [
+        __associative_node_base__ if
+        [^_container_gen_<Selector,Key,Derived>::type] returns a
+        __Reversible_Container__ model
+    ]
+    [
+        __tree_node_with_accumulation__ if `BaseGenerator` returns a
+        [*Reversible Tree Node] model
+    ]
+    [
+        __tree_node_with_accumulation_base__ if `BaseGenerator` returns a
+        [*Reversible Tree Node] model
+    ]
+    [
+        __tree_node_with_count__ if `BaseGenerator` returns a [*Reversible Tree
+        Node] model
+    ]
+    [
+        __tree_node_with_count_base__ if `BaseGenerator` returns a [*Reversible
+        Tree Node] model
+    ]
+    [
+        __tree_node_with_height__ if `BaseGenerator` returns a [*Reversible
+        Tree Node] model
+    ]
+    [
+        __tree_node_with_height_base__ if `BaseGenerator` returns a
+        [*Reversible Tree Node] model
+    ]
+    [
+        __tree_node_with_position__ if `BaseGenerator` returns a [*Reversible
+        Tree Node] model
+    ]
+    [
+        __tree_node_with_position_base__ if `BaseGenerator` returns a
+        [*Reversible Tree Node] model
+    ]
+    [
+        __tree_node_with_red_black_flag__ if `BaseGenerator` returns a
+        [*Reversible Tree Node] model
+    ]
+    [
+        __tree_node_with_red_black_flag_base__ if `BaseGenerator` returns a
+        [*Reversible Tree Node] model
+    ]
+]
+[endsect]
+
+[endsect] [/ Reversible Tree Node]
+
Added: sandbox/tree_node/libs/tree_node/doc/concept_tree_node.qbk
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ sandbox/tree_node/libs/tree_node/doc/concept_tree_node.qbk	2013-07-07 14:52:52 EDT (Sun, 07 Jul 2013)	(r84977)
@@ -0,0 +1,438 @@
+[/=============================================================================
+    Copyright (C) 2011-2013 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:
+a structure that maintains information about its data and its immediate
+parent-child relationships.  However, in practice, a full-fledged tree node
+data structure or adaptor consists of four components: a __Base_Tree_Node__
+model that defines the functionality, a __Base_Type_Generator__ that returns
+the __Base_Tree_Node__ model from which adaptor types can also inherit, a
+[*Tree Node] model that inherits from the base type and is better suited for
+external usage, and a __Node_Type_Generator__ that returns the [*Tree Node]
+model.
+[endsect]
+
+[variablelist Notation
+    [[`Node`][A type that models the [*Tree Node] concept.]]
+    [[`node`][An object of type `Node&`.]]
+    [[`const_node`][An object of type `Node const&`.]]
+    [[`alloc`][An object of type `Node::traits::allocator_reference`.]]
+    [[`Args`][The type of `args`.]]
+    [
+        [`args`]
+        [
+            Arguments to be forwarded to the appropriate
+            `Node::traits::data_type` constructor.
+        ]
+    ]
+]
+
+[section:types Associated Types]
+[table
+    [[Name][Expression][Description][Requirements]]
+    [
+        [Super type]
+        [`Node::super_t`]
+        [The type from which `Node` inherits its functionality.]
+        [
+            It must either be [^_tree_node_base_<Node>] or model the
+            __Base_Tree_Node__ concept.
+        ]
+    ]
+    [
+        [Data type]
+        [`Node::traits::data_type`]
+        [The type of user data stored in a tree node.]
+        []
+    ]
+    [
+        [Allocator type]
+        [`Node::traits::allocator`]
+        [
+            The type that defines the memory model to be used by the child
+            creation methods for creating `Node` objects.
+        ]
+        [It must be a valid __container_allocator_traits__ template argument.]
+    ]
+    [
+        [Allocator reference type]
+        [`Node::traits::allocator_reference`]
+        [
+            The type to which `alloc` will be bound if passed to the
+            emplacement constructor.
+        ]
+        [
+            It must be either `Node::traits::allocator&` or
+            `Node::traits::allocator const&`.
+        ]
+    ]
+    [
+        [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.
+        ]
+    ]
+    [
+        [Iterator type]
+        [`Node::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_iterator`.
+        ]
+    ]
+    [
+        [Immutable iterator type]
+        [`Node::const_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 /not/
+            point to a mutable object.
+        ]
+    ]
+    [
+        [Size type]
+        [`Node::size_type`]
+        [
+            The type of unsigned integer used to represent the number of
+            children of a `Node const` object.
+        ]
+        []
+    ]
+]
+[endsect]
+
+[section:expressions Valid Expressions and Semantics]
+[table
+    [
+        [Name]
+        [Expression]
+        [Return Type]
+        [Semantics]
+        [Type Requirements]
+        [__Runtime_Complexity__]
+    ]
+    [
+        [Emplacement constructor]
+        [``
+            Node(_boost_forward_<Args>(args)...)
+        ``]
+        []
+        [
+            Constructs a `Node` object that initializes its user data with the
+            specified arguments.
+        ]
+        [
+            The allocator type must be __Default_Constructible__, and the
+            allocator reference type must be `Node::traits::allocator const&`.
+        ]
+        []
+    ]
+    [
+        [Emplacement constructor with allocator]
+        [``
+            Node(
+                boost::container::allocator_arg
+              , alloc
+              , _boost_forward_<Args>(args)...
+            )
+        ``]
+        []
+        [
+            Constructs a `Node` object that initializes its user data with the
+            specified arguments.  The new node will use the specified allocator
+            (if the allocator reference type is mutable) or a copy of it (if
+            the allocator reference type is to `const`) to construct its own
+            parent node or its own child nodes if and when invoking its
+            respective creation methods.
+        ]
+        []
+        []
+    ]
+    [
+        [Data read-only access]
+        [``
+            get<_data_key_>(const_node)
+            get(const_node, _data_key_())
+        ``]
+        [``
+            Node::traits::data_type const&
+        ``]
+        [Returns the user data stored in the tree node.]
+        []
+        [Constant]
+    ]
+    [
+        [Data access]
+        [``
+            get<_data_key_>(node)
+            get(node, _data_key_())
+        ``]
+        [``
+            Node::traits::data_type&
+        ``]
+        [Returns the user data stored in the tree node.]
+        []
+        [Constant]
+    ]
+    [
+        [Data modification]
+        [``
+            put(node, _data_key_(), data)
+        ``]
+        [``
+            void
+        ``]
+        [Sets the user data to be stored in the tree node.]
+        [The type of `data` must be convertible to `Node::traits::data_type`.]
+        [Constant]
+    ]
+    [
+        [Key-value read-only access]
+        [``
+            get<Key>(const_node)
+            get(const_node, Key())
+        ``]
+        [``
+            _result_of__at_key_<
+                Node const
+              , Key
+            >::type
+        ``]
+        [
+            Returns the value that the tree node associates with the specified
+            key.
+        ]
+        [
+            [^_result_of__has_key_<Node,Key>] must be equivalent to
+            __mpl_true__.
+        ]
+        [Constant]
+    ]
+    [
+        [Key-value access]
+        [``
+            get<Key>(node)
+            get(node, Key())
+        ``]
+        [``
+            _result_of__at_key_<
+                Node
+              , Key
+            >::type
+        ``]
+        [
+            Returns the value that the tree node associates with the specified
+            key.
+        ]
+        [
+            [^_result_of__has_key_<Node,Key>] must be equivalent to
+            __mpl_true__.
+        ]
+        [Constant]
+    ]
+    [
+        [Key-value modification]
+        [``
+            put(node, Key(), value)
+        ``]
+        [``
+            void
+        ``]
+        [
+            Sets the value to be associated with the specified key type in the
+            tree node.
+        ]
+        [
+            [^_result_of__has_key_<Node,Key>] must be equivalent to
+            __mpl_true__, and the type of `value` must be convertible to
+            [^_result_of__value_at_key_<Node,Key>::type].
+        ]
+        [Constant]
+    ]
+    [
+        [Parent read-only access]
+        [``
+            const_node.get_parent_ptr()
+        ``]
+        [``
+            Node::const_pointer
+        ``]
+        [
+            Returns a pointer to the parent of the tree node, or a null pointer
+            if the node is the root.
+        ]
+        []
+        [Constant]
+    ]
+    [
+        [Parent access]
+        [``
+            node.get_parent_ptr()
+        ``]
+        [``
+            Node::pointer
+        ``]
+        [
+            Returns a pointer to the parent of the tree node, or a null pointer
+            if the node is the root.
+        ]
+        []
+        [Constant]
+    ]
+    [
+        [Children range begin read-only access]
+        [``
+            const_node.cbegin()
+            const_node.begin()
+        ``]
+        [``
+            Node::const_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.begin()
+        ``]
+        [``
+            Node::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 read-only access]
+        [``
+            const_node.cend()
+            const_node.end()
+        ``]
+        [``
+            Node::const_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.end()
+        ``]
+        [``
+            Node::iterator
+        ``]
+        [
+            Returns an iterator pointing past the end of the range of children
+            of the tree node.
+        ]
+        []
+        [Constant]
+    ]
+    [
+        [Children range size query]
+        [``
+            const_node.size()
+        ``]
+        [``
+            Node::size_type
+        ``]
+        [Returns the number of children of the tree node.]
+        []
+        [Linear with respect to the number of children]
+    ]
+    [
+        [Leaf node query]
+        [``
+            const_node.empty()
+        ``]
+        [``
+            bool
+        ``]
+        [
+            Equivalent to `const_node.begin() == const_node.end()`, but may
+            be more efficient in certain cases.
+        ]
+        []
+        [Linear with respect to the number of children]
+    ]
+    [
+        [Remove all descendants]
+        [``
+            node.clear()
+        ``]
+        [``
+            void
+        ``]
+        [Removes all children and their descendants from the tree node.]
+        []
+        [Linear with respect to the number of children and their descendants]
+    ]
+]
+[endsect] [/ Valid Expressions and Semantics]
+
+[section Models]
+[itemized_list
+    [__binary_node__]
+    [__binary_node_base__]
+    [__nary_node__]
+    [__nary_node_base__]
+    [__associative_node__]
+    [__associative_node_base__]
+    [__tree_node_with_accumulation__]
+    [__tree_node_with_accumulation_base__]
+    [__tree_node_with_count__]
+    [__tree_node_with_count_base__]
+    [__tree_node_with_height__]
+    [__tree_node_with_height_base__]
+    [__tree_node_with_position__]
+    [__tree_node_with_position_base__]
+    [__tree_node_with_red_black_flag__]
+    [__tree_node_with_red_black_flag_base__]
+]
+[endsect]
+
+[endsect] [/ Tree Node]
+
Added: sandbox/tree_node/libs/tree_node/doc/concepts.qbk
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ sandbox/tree_node/libs/tree_node/doc/concepts.qbk	2013-07-07 14:52:52 EDT (Sun, 07 Jul 2013)	(r84977)
@@ -0,0 +1,64 @@
+[/=============================================================================
+    Copyright (C) 2011-2013 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_copyable_tree_node.qbk]
+[include concept_movable_tree_node.qbk]
+[include concept_base_tree_node.qbk]
+[include concept_rvrsible_tree_node.qbk]
+[include concept_assoc_tree_node.qbk]
+[include concept_non_assoc_tree_node.qbk]
+[include concept_binary_tree_node.qbk]
+[include concept_nary_tree_node.qbk]
+[include concept_node_type_generator.qbk]
+[include concept_base_type_generator.qbk]
+[include concept_iterator.qbk]
+[include concept_full_iterator.qbk]
+[include concept_descendant_iterator.qbk]
+[include concept_indexable_container.qbk]
+[include concept_indexable_iterator.qbk]
+
+[heading Core Concepts]
+
+[itemized_list
+    [__Tree_Node__
+        [itemized_list
+            [__Copyable_Tree_Node__]
+            [__Movable_Tree_Node__]
+            [__Base_Tree_Node__]
+            [__Reversible_Tree_Node__]
+            [__Associative_Tree_Node__]
+            [__Non_Associative_Tree_Node__
+                [itemized_list
+                    [__Binary_Tree_Node__]
+                    [__N_ary_Tree_Node__]
+                ]
+            ]
+        ]
+    ]
+    [__Node_Type_Generator__]
+    [__Base_Type_Generator__]
+    [__Tree_Node_Iterator__
+        [itemized_list
+            [__Full_Tree_Node_Iterator__]
+            [__Tree_Node_Descendant_Iterator__]
+        ]
+    ]
+]
+
+[heading Auxiliary Concepts]
+
+[itemized_list
+    [__Indexable_Container__]
+    [__Indexable_Iterator__]
+]
+
+[endsect] [/ Concepts]
+
Added: sandbox/tree_node/libs/tree_node/doc/html/index.html
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ sandbox/tree_node/libs/tree_node/doc/html/index.html	2013-07-07 14:52:52 EDT (Sun, 07 Jul 2013)	(r84977)
@@ -0,0 +1,70 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Chapter 1. tree_node 0.5</title>
+<link rel="stylesheet" href="http://www.boost.org/doc/libs/release/doc/src/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.77.1">
+<link rel="home" href="index.html" title="Chapter 1. tree_node 0.5">
+<link rel="next" href="tree_node/concepts.html" title="Concepts">
+</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="n" href="tree_node/concepts.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/next.png" alt="Next"></a></div>
+<div class="chapter">
+<div class="titlepage"><div>
+<div><h2 class="title">
+<a name="tree_node"></a>Chapter 1. tree_node 0.5</h2></div>
+<div><div class="author"><h3 class="author">
+<span class="firstname">Cromwell D.</span> <span class="surname">Enage</span>
+</h3></div></div>
+<div><p class="copyright">Copyright © 2011-2013 Cromwell D. Enage</p></div>
+<div><div class="legalnotice">
+<a name="tree_node.legal"></a><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></div>
+</div></div>
+<div class="toc">
+<p><b>Table of Contents</b></p>
+<dl>
+<dt><span class="section">Concepts</span></dt>
+<dt><span class="section">Reference</span></dt>
+<dt><span class="section">Changelog</span></dt>
+</dl>
+</div>
+<h3>
+<a name="tree_node.h0"></a>
+    <span class="phrase"><a name="tree_node.rationale"></a></span><a class="link" href="index.html#tree_node.rationale">Rationale</a>
+  </h3>
+<p>
+    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.
+  </p>
+<div class="important"><table border="0" summary="Important">
+<tr>
+<td rowspan="2" align="center" valign="top" width="25"><img alt="[Important]" src="http://www.boost.org/doc/libs/release/doc/src/images/important.png"></td>
+<th align="left">Important</th>
+</tr>
+<tr><td align="left" valign="top"><p>
+      This library depends on Boost.ContainerGen, which is not yet a part
+      of Boost. For now, you must perform a Subversion checkout from the <a href="http://svn.boost.org/" target="_top">SVN
+      Trac</a>.
+    </p></td></tr>
+</table></div>
+</div>
+<table xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" width="100%"><tr>
+<td align="left"><p><small>Last revised: July 07, 2013 at 18:36:21 GMT</small></p></td>
+<td align="right"><div class="copyright-footer"></div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav"><a accesskey="n" href="tree_node/concepts.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/next.png" alt="Next"></a></div>
+</body>
+</html>
Added: sandbox/tree_node/libs/tree_node/doc/html/tree_node/changelog.html
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ sandbox/tree_node/libs/tree_node/doc/html/tree_node/changelog.html	2013-07-07 14:52:52 EDT (Sun, 07 Jul 2013)	(r84977)
@@ -0,0 +1,273 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Changelog</title>
+<link rel="stylesheet" href="http://www.boost.org/doc/libs/release/doc/src/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.77.1">
+<link rel="home" href="../index.html" title="Chapter 1. tree_node 0.5">
+<link rel="up" href="../index.html" title="Chapter 1. tree_node 0.5">
+<link rel="prev" href="reference/can_use_fusion_with_typeof.html" title="BOOST_TREE_NODE_CAN_USE_FUSION_WITH_TYPEOF">
+</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/can_use_fusion_with_typeof.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/home.png" alt="Home"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="tree_node.changelog"></a><a class="link" href="changelog.html" title="Changelog">Changelog</a>
+</h2></div></div></div>
+<h4>
+<a name="tree_node.changelog.h0"></a>
+      <span class="phrase"><a name="tree_node.changelog.from_0_4_to_0_5"></a></span><a class="link" href="changelog.html#tree_node.changelog.from_0_4_to_0_5">From
+      0.4 to 0.5</a>
+    </h4>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem"><p>
+          Added the <a class="link" href="concepts/copyable_tree_node.html" title="Copyable Tree Node"><span class="bold"><strong>Copyable Tree Node</strong></span></a> and <a class="link" href="concepts/movable_tree_node.html" title="Movable Tree Node"><span class="bold"><strong>Movable Tree Node</strong></span></a> concepts.
+        </p></li>
+<li class="listitem"><p>
+          Added the <a class="link" href="reference/compare_selector.html" title="compare_selector<Key>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">compare_selector</span></code></a> template.
+        </p></li>
+<li class="listitem"><p>
+          Added the <a class="link" href="reference/null_balancer.html" title="null_balancer"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">null_balancer</span></code></a> trait struct.
+        </p></li>
+<li class="listitem"><p>
+          Added the <a class="link" href="reference/at_key.html" title="at_key<Key>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">at_key</span></code></a>
+          intrinsic function object.
+        </p></li>
+<li class="listitem"><p>
+          Added the <a class="link" href="reference/cartesian_sort.html" title="cartesian_sort()"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">cartesian_sort</span><span class="special">()</span></code></a>
+          and <a class="link" href="reference/cartesian_sort_range.html" title="cartesian_sort_range()"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">cartesian_sort_range</span><span class="special">()</span></code></a>
+          algorithms.
+        </p></li>
+</ul></div>
+<h4>
+<a name="tree_node.changelog.h1"></a>
+      <span class="phrase"><a name="tree_node.changelog.from_0_3_to_0_4"></a></span><a class="link" href="changelog.html#tree_node.changelog.from_0_3_to_0_4">From
+      0.3 to 0.4</a>
+    </h4>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem"><p>
+          Added the <a class="link" href="reference/binode_container.html" title="binode_container<NodeGenerator,T,Balancer>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">binode_container</span></code></a>, <a class="link" href="reference/binode_assoc_container.html" title="binode_associative_container< NodeGenerator , T1 , T2 , IsMultipleAssociative , CompareSelector , Balancer >"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">binode_associative_container</span></code></a>,
+          <a class="link" href="reference/binode_set.html" title="binode_set<NodeGenerator,T,CompareSelector,Balancer>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">binode_set</span></code></a>,
+          <a class="link" href="reference/binode_multiset.html" title="binode_multiset<NodeGenerator,T,CompareSelector,Balancer>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">binode_multiset</span></code></a>,
+          <a class="link" href="reference/binode_map.html" title="binode_map<NodeGenerator,Key,Mapped,CompareSelector,Balancer>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">binode_map</span></code></a>,
+          and <a class="link" href="reference/binode_multimap.html" title="binode_multimap<NodeGenerator,Key,Mapped,CompareSelector,Balancer>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">binode_multimap</span></code></a>
+          data structures.
+        </p></li>
+<li class="listitem"><p>
+          Added the <a class="link" href="reference/red_black_balancer.html" title="red_black_balancer"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">red_black_balancer</span></code></a> and <a class="link" href="reference/avl_balancer.html" title="adelson_velskii_landis_balancer"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">adelson_velskii_landis_balancer</span></code></a>
+          trait structs.
+        </p></li>
+<li class="listitem"><p>
+          Added the <a class="link" href="concepts/reversible_tree_node.html" title="Reversible Tree Node"><span class="bold"><strong>Reversible Tree Node</strong></span></a>, <a class="link" href="concepts/indexable_container.html" title="Indexable Container"><span class="bold"><strong>Indexable Container</strong></span></a>, and <a class="link" href="concepts/indexable_iterator.html" title="Indexable Iterator"><span class="bold"><strong>Indexable Iterator</strong></span></a> concepts.
+        </p></li>
+<li class="listitem"><p>
+          Refined the <span class="bold"><strong>Type Generator</strong></span> concept into
+          the <a class="link" href="concepts/node_type_generator.html" title="Node Type Generator"><span class="bold"><strong>Node
+          Type Generator</strong></span></a> and <a class="link" href="concepts/base_type_generator.html" title="Base Type Generator"><span class="bold"><strong>Base Type Generator</strong></span></a> concepts.
+        </p></li>
+<li class="listitem"><p>
+          Added the <a class="link" href="reference/copyable_and_movable.html" title="BOOST_TREE_NODE_COPYABLE_AND_MOVABLE"><code class="computeroutput"><span class="identifier">BOOST_TREE_NODE_COPYABLE_AND_MOVABLE</span></code></a>,
+          <a class="link" href="reference/emplace_ctor_fwd_decl.html" title="BOOST_TREE_NODE_EMPLACEMENT_CTOR_FWD_DECL"><code class="computeroutput"><span class="identifier">BOOST_TREE_NODE_EMPLACEMENT_CTOR_FWD_DECL</span></code></a>,
+          <a class="link" href="reference/emplace_ctor_inline_hdr.html" title="BOOST_TREE_NODE_EMPLACEMENT_CTOR_INLINE_HDR"><code class="computeroutput"><span class="identifier">BOOST_TREE_NODE_EMPLACEMENT_CTOR_INLINE_HEADER</span></code></a>,
+          <a class="link" href="reference/emplace_ctor_inline_def.html" title="BOOST_TREE_NODE_EMPLACEMENT_CTOR_INLINE_DEF"><code class="computeroutput"><span class="identifier">BOOST_TREE_NODE_EMPLACEMENT_CTOR_INLINE_DEF</span></code></a>,
+          <a class="link" href="reference/emplace_ctor_w_alloc_f_dcl.html" title="BOOST_TREE_NODE_EMPLACEMENT_CTOR_W_ALLOC_FWD_DECL"><code class="computeroutput"><span class="identifier">BOOST_TREE_NODE_EMPLACEMENT_CTOR_W_ALLOC_FWD_DECL</span></code></a>,
+          <a class="link" href="reference/emplace_ctor_w_alloc_i_hdr.html" title="BOOST_TREE_NODE_EMPLACEMENT_CTOR_W_ALLOC_INLINE_HEADER"><code class="computeroutput"><span class="identifier">BOOST_TREE_NODE_EMPLACEMENT_CTOR_W_ALLOC_INLINE_HEADER</span></code></a>,
+          <a class="link" href="reference/emplace_ctor_w_alloc_i_def.html" title="BOOST_TREE_NODE_EMPLACEMENT_CTOR_W_ALLOC_INLINE_DEF"><code class="computeroutput"><span class="identifier">BOOST_TREE_NODE_EMPLACEMENT_CTOR_W_ALLOC_INLINE_DEF</span></code></a>,
+          <a class="link" href="reference/can_use_fusion.html" title="BOOST_TREE_NODE_CAN_USE_FUSION"><code class="computeroutput"><span class="identifier">BOOST_TREE_NODE_CAN_USE_FUSION</span></code></a>,
+          and <a class="link" href="reference/can_use_fusion_with_typeof.html" title="BOOST_TREE_NODE_CAN_USE_FUSION_WITH_TYPEOF"><code class="computeroutput"><span class="identifier">BOOST_TREE_NODE_CAN_USE_FUSION_WITH_TYPEOF</span></code></a>
+          preprocessor macros.
+        </p></li>
+<li class="listitem"><p>
+          Added size type and emplacement constructor and size method expressions
+          to the <a class="link" href="concepts/tree_node.html" title="Tree Node"><span class="bold"><strong>Tree
+          Node</strong></span></a> concept.
+        </p></li>
+<li class="listitem"><p>
+          Added <code class="computeroutput"><span class="identifier">on_post_</span><span class="special">*</span></code>
+          and <code class="computeroutput"><span class="identifier">on_post_</span><span class="special">*</span><span class="identifier">_impl</span></code> method expressions to the <a class="link" href="concepts/base_tree_node.html" title="Base Tree Node"><span class="bold"><strong>Base
+          Tree Node</strong></span></a> concept.
+        </p></li>
+<li class="listitem"><p>
+          Added iterator range and immutable iterator range types to 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></li>
+<li class="listitem"><p>
+          <a class="link" href="concepts/tree_node.html" title="Tree Node"><span class="bold"><strong>Tree
+          Node</strong></span></a> models are now Movable.
+        </p></li>
+<li class="listitem"><p>
+          <a class="link" href="concepts/tree_node.html" title="Tree Node"><span class="bold"><strong>Tree
+          Node</strong></span></a> models are no longer Equality Comparable or Less-Than Comparable.
+        </p></li>
+<li class="listitem"><p>
+          Added the <a class="link" href="reference/with_accumulation.html" title="with_accumulation<BaseGenerator,T1,T2,AccumulationKey>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">with_accumulation</span></code></a> adaptor class
+          template, the corresponding <a class="link" href="concepts/base_tree_node.html" title="Base Tree Node"><span class="bold"><strong>Base Tree Node</strong></span></a> model <a class="link" href="reference/with_accumulation_base.html" title="with_accumulation_base< Derived , BaseGenerator , T1 , T2 , Key , Tag , IncludesAllDescendants , IncludesRoot , Value >"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">with_accumulation_base</span></code></a>, the corresponding
+          <a class="link" href="concepts/node_type_generator.html" title="Node Type Generator"><span class="bold"><strong>Node
+          Type Generator</strong></span></a> model <a class="link" href="reference/with_accumulation_gen.html" title="with_accumulation_gen<BaseGenerator>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">with_accumulation_gen</span></code></a>, and the
+          corresponding <a class="link" href="concepts/base_type_generator.html" title="Base Type Generator"><span class="bold"><strong>Base Type Generator</strong></span></a> model <a class="link" href="reference/with_accumulation_base_gen.html" title="with_accumulation_base_gen<BaseGenerator>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">with_accumulation_base_gen</span></code></a>.
+        </p></li>
+<li class="listitem"><p>
+          Added the <a class="link" href="reference/with_count.html" title="with_count<BaseGenerator,T1,T2,Count>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">with_count</span></code></a> adaptor class template,
+          the corresponding <a class="link" href="concepts/base_tree_node.html" title="Base Tree Node"><span class="bold"><strong>Base Tree Node</strong></span></a> model <a class="link" href="reference/with_count_base.html" title="with_count_base<Derived,BaseGenerator,T1,T2,Count>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">with_count_base</span></code></a>, the corresponding
+          <a class="link" href="concepts/node_type_generator.html" title="Node Type Generator"><span class="bold"><strong>Node
+          Type Generator</strong></span></a> model <a class="link" href="reference/with_count_gen.html" title="with_count_gen<BaseGenerator>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">with_count_gen</span></code></a>, and the corresponding
+          <a class="link" href="concepts/base_type_generator.html" title="Base Type Generator"><span class="bold"><strong>Base
+          Type Generator</strong></span></a> model <a class="link" href="reference/with_count_base_gen.html" title="with_count_base_gen<BaseGenerator>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">with_count_base_gen</span></code></a>.
+        </p></li>
+<li class="listitem"><p>
+          Renamed <code class="computeroutput"><span class="identifier">with_depth</span></code> to
+          <a class="link" href="reference/with_height.html" title="with_height<BaseGenerator,T1,T2,Height>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">with_height</span></code></a>.
+        </p></li>
+<li class="listitem"><p>
+          Renamed <code class="computeroutput"><span class="identifier">with_depth_base</span></code>
+          to <a class="link" href="reference/with_height_base.html" title="with_height_base<Derived,BaseGenerator,T1,T2,Height>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">with_height_base</span></code></a>.
+        </p></li>
+<li class="listitem"><p>
+          Renamed <code class="computeroutput"><span class="identifier">with_depth_gen</span></code>
+          to <a class="link" href="reference/with_height_gen.html" title="with_height_gen<BaseGenerator>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">with_height_gen</span></code></a>.
+        </p></li>
+<li class="listitem"><p>
+          Added the <a class="link" href="concepts/base_type_generator.html" title="Base Type Generator"><span class="bold"><strong>Base Type Generator</strong></span></a> models <a class="link" href="reference/with_count_base_gen.html" title="with_count_base_gen<BaseGenerator>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">with_count_base_gen</span></code></a>, <a class="link" href="reference/with_height_base_gen.html" title="with_height_base_gen<BaseGenerator>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">with_height_base_gen</span></code></a>, <a class="link" href="reference/with_position_base_gen.html" title="with_position_base_gen<BaseGenerator>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">with_position_base_gen</
 span></code></a>, and <a class="link" href="reference/with_rb_flag_base_gen.html" title="with_red_black_flag_base_gen<BaseGenerator>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">with_red_black_flag_base_gen</span></code></a>.
+        </p></li>
+<li class="listitem"><p>
+          Added the <a class="link" href="reference/advance_binary.html" title="advance_binary()"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">advance_binary</span><span class="special">()</span></code></a>,
+          <a class="link" href="reference/binary_index_of.html" title="binary_index_of()"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">binary_index_of</span><span class="special">()</span></code></a>, <a class="link" href="reference/binary_descendant.html" title="binary_descendant()"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">binary_descendant</span><span class="special">()</span></code></a>,
+          <a class="link" href="reference/binary_descendant_at_index.html" title="binary_descendant_at_index()"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">binary_descendant_at_index</span><span class="special">()</span></code></a>,
+          <a class="link" href="reference/binary_upper_bound.html" title="binary_upper_bound()"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">binary_upper_bound</span><span class="special">()</span></code></a>, and <a class="link" href="reference/binary_lower_bound.html" title="binary_lower_bound()"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">binary_lower_bound</span><span class="special">()</span></code></a>
+          algorithms.
+        </p></li>
+<li class="listitem"><p>
+          Removed <code class="computeroutput"><span class="identifier">tree_node_equal</span></code>,
+          <code class="computeroutput"><span class="identifier">tree_node_strictly_equal</span></code>,
+          <code class="computeroutput"><span class="identifier">tree_node_lexicographical_compare</span></code>,
+          and <code class="computeroutput"><span class="identifier">tree_node_strict_lexicographical_compare</span></code>
+          algorithms.
+        </p></li>
+</ul></div>
+<h4>
+<a name="tree_node.changelog.h2"></a>
+      <span class="phrase"><a name="tree_node.changelog.from_0_2_to_0_3"></a></span><a class="link" href="changelog.html#tree_node.changelog.from_0_2_to_0_3">From
+      0.2 to 0.3</a>
+    </h4>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem"><p>
+          Added the <a class="link" href="concepts/associative_tree_node.html" title="Associative Tree Node"><span class="bold"><strong>Associative Tree Node</strong></span></a>, <a class="link" href="concepts/non_assoc_tree_node.html" title="Non-Associative Tree Node"><span class="bold"><strong>Non-Associative Tree Node</strong></span></a>, <a class="link" href="concepts/binary_tree_node.html" title="Binary Tree Node"><span class="bold"><strong>Binary Tree Node</strong></span></a>, <a class="link" href="concepts/nary_tree_node.html" title="N-ary Tree Node"><span class="bold"><strong>N-ary Tree Node</strong></span></a>, and <span class="bold"><strong>Type
+          Generator</strong></span> concepts.
+        </p></li>
+<li class="listitem"><p>
+          Added the <a class="link" href="reference/binary_node.html" title="binary_node<T,Size,AllocatorSelector>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">binary_node</span></code></a> data structure, the
+          corresponding <a class="link" href="concepts/base_tree_node.html" title="Base Tree Node"><span class="bold"><strong>Base Tree Node</strong></span></a> model <a class="link" href="reference/binary_node_base.html" title="binary_node_base<Derived,T,Selector>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">binary_node_base</span></code></a>, and the corresponding
+          <span class="bold"><strong>Type Generator</strong></span> model <a class="link" href="reference/binary_node_gen.html" title="binary_node_gen<Size,AllocatorSelector>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">binary_node_gen</span></code></a>.
+        </p></li>
+<li class="listitem"><p>
+          Renamed <code class="computeroutput"><span class="identifier">raw_node</span></code> to <a class="link" href="reference/nary_node.html" title="nary_node<T,Selector>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">nary_node</span></code></a>;
+          added the corresponding <a class="link" href="concepts/base_tree_node.html" title="Base Tree Node"><span class="bold"><strong>Base Tree Node</strong></span></a> model <a class="link" href="reference/nary_node_base.html" title="nary_node_base<Derived,T,Selector>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">nary_node_base</span></code></a> and the corresponding
+          <span class="bold"><strong>Type Generator</strong></span> model <a class="link" href="reference/nary_node_gen.html" title="nary_node_gen<Selector>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">nary_node_gen</span></code></a>.
+        </p></li>
+<li class="listitem"><p>
+          Renamed <code class="computeroutput"><span class="identifier">raw_associative_node</span></code>
+          to <a class="link" href="reference/associative_node.html" title="associative_node<Key,Data,Selector>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">associative_node</span></code></a>;
+          added the corresponding <a class="link" href="concepts/base_tree_node.html" title="Base Tree Node"><span class="bold"><strong>Base Tree Node</strong></span></a> model <a class="link" href="reference/associative_node_base.html" title="associative_node_base<Derived,Key,Data,Selector>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">associative_node_base</span></code></a> and the
+          corresponding <span class="bold"><strong>Type Generator</strong></span> model <a class="link" href="reference/associative_node_gen.html" title="associative_node_gen<Selector>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">associative_node_gen</span></code></a>.
+        </p></li>
+<li class="listitem"><p>
+          Added the <a class="link" href="concepts/base_tree_node.html" title="Base Tree Node"><span class="bold"><strong>Base
+          Tree Node</strong></span></a> model <code class="computeroutput"><span class="identifier">with_depth_base</span></code>
+          and the corresponding <span class="bold"><strong>Type Generator</strong></span> model
+          <code class="computeroutput"><span class="identifier">with_depth_gen</span></code>.
+        </p></li>
+<li class="listitem"><p>
+          Added <a class="link" href="reference/with_position.html" title="with_position<BaseGenerator,T1,T2>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">with_position</span></code></a>
+          adaptor class template, the corresponding <a class="link" href="concepts/base_tree_node.html" title="Base Tree Node"><span class="bold"><strong>Base Tree Node</strong></span></a> model <a class="link" href="reference/with_position_base.html" title="with_position_base<Derived,BaseGenerator,T1,T2>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">with_position_base</span></code></a>, and the corresponding
+          <span class="bold"><strong>Type Generator</strong></span> model <a class="link" href="reference/with_position_gen.html" title="with_position_gen<BaseGenerator>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">with_position_gen</span></code></a>.
+        </p></li>
+<li class="listitem"><p>
+          Added the <a class="link" href="reference/with_rb_flag.html" title="with_red_black_flag<BaseGenerator,T1,T2>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">with_red_black_flag</span></code></a> adaptor class
+          template, the corresponding <a class="link" href="concepts/base_tree_node.html" title="Base Tree Node"><span class="bold"><strong>Base Tree Node</strong></span></a> model <a class="link" href="reference/with_rb_flag_base.html" title="with_red_black_flag_base<Derived,BaseGenerator,T1,T2>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">with_red_black_flag_base</span></code></a>, and
+          the corresponding <span class="bold"><strong>Type Generator</strong></span> model
+          <a class="link" href="reference/with_rb_flag_gen.html" title="with_red_black_flag_gen<BaseGenerator>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">with_red_black_flag_gen</span></code></a>.
+        </p></li>
+<li class="listitem"><p>
+          Added the <a class="link" href="reference/breadth_first_desc_iter.html" title="breadth_first_descendant_iterator<Node,Selector>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">breadth_first_descendant_iterator</span></code></a>,
+          <a class="link" href="reference/pre_order_desc_iter.html" title="pre_order_descendant_iterator<Node,IsReverse>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">pre_order_descendant_iterator</span></code></a>,
+          <a class="link" href="reference/post_order_desc_iter.html" title="post_order_descendant_iterator<Node,IsReverse>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">post_order_descendant_iterator</span></code></a>,
+          <a class="link" href="reference/in_order_iterator.html" title="in_order_iterator<Node,IsReverse>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">in_order_iterator</span></code></a>,
+          and <a class="link" href="reference/depth_first_desc_iter.html" title="depth_first_descendant_iterator<Node,IsReverse>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">depth_first_descendant_iterator</span></code></a>
+          adaptor class templates.
+        </p></li>
+<li class="listitem"><p>
+          Added the <a class="link" href="reference/dereference_iterator.html" title="dereference_iterator()"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">dereference_iterator</span><span class="special">()</span></code></a>,
+          <code class="computeroutput"><span class="identifier">tree_node_equal</span></code>, <code class="computeroutput"><span class="identifier">tree_node_strictly_equal</span></code>, <code class="computeroutput"><span class="identifier">tree_node_lexicographical_compare</span></code>, and
+          <code class="computeroutput"><span class="identifier">tree_node_strict_lexicographical_compare</span></code>
+          algorithms.
+        </p></li>
+<li class="listitem"><p>
+          Removed the <span class="bold"><strong>Factory-Constructible Tree Node</strong></span>
+          and <span class="bold"><strong>Cloneable Tree Node</strong></span> concepts.
+        </p></li>
+<li class="listitem"><p>
+          Removed the <code class="computeroutput"><span class="identifier">tree_node_factory</span></code>
+          facade.
+        </p></li>
+<li class="listitem"><p>
+          Removed the <code class="computeroutput"><span class="identifier">shared_tree_node_base</span></code>
+          <code class="computeroutput"><span class="keyword">struct</span></code> template.
+        </p></li>
+<li class="listitem"><p>
+          Removed the <code class="computeroutput"><span class="identifier">simple_node</span></code>
+          and <code class="computeroutput"><span class="identifier">simple_associative_node</span></code>
+          data structures.
+        </p></li>
+<li class="listitem"><p>
+          Removed the <code class="computeroutput"><span class="identifier">with_child_range_access</span></code>
+          adaptor class template; the <a class="link" href="concepts/tree_node.html" title="Tree Node"><span class="bold"><strong>Tree Node</strong></span></a> concept now requires child range
+          access for all models.
+        </p></li>
+</ul></div>
+<h4>
+<a name="tree_node.changelog.h3"></a>
+      <span class="phrase"><a name="tree_node.changelog.from_0_1_to_0_2"></a></span><a class="link" href="changelog.html#tree_node.changelog.from_0_1_to_0_2">From
+      0.1 to 0.2</a>
+    </h4>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem"><p>
+          Added the <a class="link" href="concepts/base_tree_node.html" title="Base Tree Node"><span class="bold"><strong>Base
+          Tree Node</strong></span></a>, <span class="bold"><strong>Factory-Constructible
+          Tree Node</strong></span>, and <span class="bold"><strong>Cloneable Tree Node</strong></span>
+          concepts.
+        </p></li>
+<li class="listitem"><p>
+          Added <code class="computeroutput"><span class="identifier">tree_node_factory</span></code>
+          facade.
+        </p></li>
+<li class="listitem"><p>
+          Added the <a class="link" href="reference/tree_node_base.html" title="tree_node_base<Derived>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">tree_node_base</span></code></a> and <code class="computeroutput"><span class="identifier">shared_tree_node_base</span></code> <code class="computeroutput"><span class="keyword">struct</span></code>
+          templates; each <a class="link" href="concepts/tree_node.html" title="Tree Node"><span class="bold"><strong>Tree Node</strong></span></a> model that is not a <a class="link" href="concepts/base_tree_node.html" title="Base Tree Node"><span class="bold"><strong>Base Tree Node</strong></span></a> now inherits from a corresponding
+          <a class="link" href="concepts/base_tree_node.html" title="Base Tree Node"><span class="bold"><strong>Base
+          Tree Node</strong></span></a> which, in turn, inherits from one of these
+          two types.
+        </p></li>
+<li class="listitem"><p>
+          Added the <code class="computeroutput"><span class="identifier">with_child_range_access</span></code>
+          and <code class="computeroutput"><span class="identifier">with_depth</span></code> adaptor
+          class templates.
+        </p></li>
+</ul></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-2013 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/can_use_fusion_with_typeof.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/home.png" alt="Home"></a>
+</div>
+</body>
+</html>
Added: sandbox/tree_node/libs/tree_node/doc/html/tree_node/concepts.html
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ sandbox/tree_node/libs/tree_node/doc/html/tree_node/concepts.html	2013-07-07 14:52:52 EDT (Sun, 07 Jul 2013)	(r84977)
@@ -0,0 +1,123 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Concepts</title>
+<link rel="stylesheet" href="http://www.boost.org/doc/libs/release/doc/src/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.77.1">
+<link rel="home" href="../index.html" title="Chapter 1. tree_node 0.5">
+<link rel="up" href="../index.html" title="Chapter 1. tree_node 0.5">
+<link rel="prev" href="../index.html" title="Chapter 1. tree_node 0.5">
+<link rel="next" href="concepts/tree_node.html" title="Tree 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="../index.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="concepts/tree_node.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="tree_node.concepts"></a><a class="link" href="concepts.html" title="Concepts">Concepts</a>
+</h2></div></div></div>
+<h4>
+<a name="tree_node.concepts.h0"></a>
+      <span class="phrase"><a name="tree_node.concepts.core_concepts"></a></span><a class="link" href="concepts.html#tree_node.concepts.core_concepts">Core
+      Concepts</a>
+    </h4>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem">
+<p>
+          <a class="link" href="concepts/tree_node.html" title="Tree Node"><span class="bold"><strong>Tree
+          Node</strong></span></a>
+        </p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: circle; ">
+<li class="listitem"><p>
+              <a class="link" href="concepts/copyable_tree_node.html" title="Copyable Tree Node"><span class="bold"><strong>Copyable
+              Tree Node</strong></span></a>
+            </p></li>
+<li class="listitem"><p>
+              <a class="link" href="concepts/movable_tree_node.html" title="Movable Tree Node"><span class="bold"><strong>Movable
+              Tree Node</strong></span></a>
+            </p></li>
+<li class="listitem"><p>
+              <a class="link" href="concepts/base_tree_node.html" title="Base Tree Node"><span class="bold"><strong>Base
+              Tree Node</strong></span></a>
+            </p></li>
+<li class="listitem"><p>
+              <a class="link" href="concepts/reversible_tree_node.html" title="Reversible Tree Node"><span class="bold"><strong>Reversible
+              Tree Node</strong></span></a>
+            </p></li>
+<li class="listitem"><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></li>
+<li class="listitem">
+<p>
+              <a class="link" href="concepts/non_assoc_tree_node.html" title="Non-Associative Tree Node"><span class="bold"><strong>Non-Associative
+              Tree Node</strong></span></a>
+            </p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: square; ">
+<li class="listitem"><p>
+                  <a class="link" href="concepts/binary_tree_node.html" title="Binary Tree Node"><span class="bold"><strong>Binary
+                  Tree Node</strong></span></a>
+                </p></li>
+<li class="listitem"><p>
+                  <a class="link" href="concepts/nary_tree_node.html" title="N-ary Tree Node"><span class="bold"><strong>N-ary
+                  Tree Node</strong></span></a>
+                </p></li>
+</ul></div>
+</li>
+</ul></div>
+</li>
+<li class="listitem"><p>
+          <a class="link" href="concepts/node_type_generator.html" title="Node Type Generator"><span class="bold"><strong>Node
+          Type Generator</strong></span></a>
+        </p></li>
+<li class="listitem"><p>
+          <a class="link" href="concepts/base_type_generator.html" title="Base Type Generator"><span class="bold"><strong>Base
+          Type Generator</strong></span></a>
+        </p></li>
+<li class="listitem">
+<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>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: circle; ">
+<li class="listitem"><p>
+              <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>
+            </p></li>
+<li class="listitem"><p>
+              <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>
+            </p></li>
+</ul></div>
+</li>
+</ul></div>
+<h4>
+<a name="tree_node.concepts.h1"></a>
+      <span class="phrase"><a name="tree_node.concepts.auxiliary_concepts"></a></span><a class="link" href="concepts.html#tree_node.concepts.auxiliary_concepts">Auxiliary
+      Concepts</a>
+    </h4>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem"><p>
+          <a class="link" href="concepts/indexable_container.html" title="Indexable Container"><span class="bold"><strong>Indexable
+          Container</strong></span></a>
+        </p></li>
+<li class="listitem"><p>
+          <a class="link" href="concepts/indexable_iterator.html" title="Indexable Iterator"><span class="bold"><strong>Indexable
+          Iterator</strong></span></a>
+        </p></li>
+</ul></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-2013 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="../index.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="concepts/tree_node.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/tree_node/libs/tree_node/doc/html/tree_node/concepts/associative_tree_node.html
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ sandbox/tree_node/libs/tree_node/doc/html/tree_node/concepts/associative_tree_node.html	2013-07-07 14:52:52 EDT (Sun, 07 Jul 2013)	(r84977)
@@ -0,0 +1,701 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Associative Tree Node</title>
+<link rel="stylesheet" href="http://www.boost.org/doc/libs/release/doc/src/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.77.1">
+<link rel="home" href="../../index.html" title="Chapter 1. tree_node 0.5">
+<link rel="up" href="../concepts.html" title="Concepts">
+<link rel="prev" href="reversible_tree_node.html" title="Reversible Tree Node">
+<link rel="next" href="non_assoc_tree_node.html" title="Non-Associative Tree 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="reversible_tree_node.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../concepts.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="non_assoc_tree_node.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="tree_node.concepts.associative_tree_node"></a><a class="link" href="associative_tree_node.html" title="Associative Tree Node">Associative
+      Tree Node</a>
+</h3></div></div></div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.concepts.associative_tree_node.description"></a><a class="link" href="associative_tree_node.html#tree_node.concepts.associative_tree_node.description" title="Description">Description</a>
+</h4></div></div></div>
+<p>
+          Models of this concept provide key-based access to their child nodes.
+        </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.concepts.associative_tree_node.refinement_of"></a><a class="link" href="associative_tree_node.html#tree_node.concepts.associative_tree_node.refinement_of" title="Refinement of">Refinement
+        of</a>
+</h4></div></div></div>
+<p>
+          <a class="link" href="tree_node.html" title="Tree Node"><span class="bold"><strong>Tree
+          Node</strong></span></a>
+        </p>
+</div>
+<div class="variablelist">
+<p class="title"><b>Notation</b></p>
+<dl class="variablelist">
+<dt><span class="term"><code class="computeroutput"><span class="identifier">Node</span></code></span></dt>
+<dd><p>
+              A type that models the <span class="bold"><strong>Associative Tree Node</strong></span>
+              concept.
+            </p></dd>
+<dt><span class="term"><code class="computeroutput"><span class="identifier">node</span></code></span></dt>
+<dd><p>
+              An object of type <code class="computeroutput"><span class="identifier">Node</span><span class="special">&</span></code>.
+            </p></dd>
+<dt><span class="term"><code class="computeroutput"><span class="identifier">const_node</span></code></span></dt>
+<dd><p>
+              An object of type <code class="computeroutput"><span class="identifier">Node</span> <span class="keyword">const</span><span class="special">&</span></code>.
+            </p></dd>
+<dt><span class="term"><code class="computeroutput"><span class="identifier">source</span></code></span></dt>
+<dd><p>
+              An object of type <code class="computeroutput"><span class="identifier">Node</span><span class="special">&&</span></code>.
+            </p></dd>
+<dt><span class="term"><code class="computeroutput"><span class="identifier">key</span></code></span></dt>
+<dd><p>
+              An object of type <code class="computeroutput"><span class="identifier">Node</span><span class="special">::</span><span class="identifier">traits</span><span class="special">::</span><span class="identifier">key_type</span>
+              <span class="keyword">const</span><span class="special">&</span></code>.
+            </p></dd>
+<dt><span class="term"><code class="computeroutput"><span class="identifier">Args</span></code></span></dt>
+<dd><p>
+              The type of <code class="computeroutput"><span class="identifier">args</span></code>.
+            </p></dd>
+<dt><span class="term"><code class="computeroutput"><span class="identifier">args</span></code></span></dt>
+<dd><p>
+              Arguments to be forwarded to the appropriate <code class="computeroutput"><span class="identifier">Node</span><span class="special">::</span><span class="identifier">traits</span><span class="special">::</span><span class="identifier">data_type</span></code>
+              constructor.
+            </p></dd>
+</dl>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.concepts.associative_tree_node.types"></a><a class="link" href="associative_tree_node.html#tree_node.concepts.associative_tree_node.types" title="Associated Types">Associated
+        Types</a>
+</h4></div></div></div>
+<p>
+          Three new types are introduced.
+        </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+                  <p>
+                    Name
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Expression
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Description
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Requirements
+                  </p>
+                </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+                  <p>
+                    Key type
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">Node</span><span class="special">::</span><span class="identifier">traits</span><span class="special">::</span><span class="identifier">key_type</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    The type of a key that a tree node will associate with a child
+                    node.
+                  </p>
+                </td>
+<td>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Iterator range type
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">Node</span><span class="special">::</span><span class="identifier">traits</span><span class="special">::</span><span class="identifier">iterator_range</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    The type of a range of child nodes and their associated keys.
+                  </p>
+                </td>
+<td>
+                  <p>
+                    It must model a Boost.Range concept.
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Immutable iterator range type
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">Node</span><span class="special">::</span><span class="identifier">traits</span><span class="special">::</span><span class="identifier">const_iterator_range</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    The type of an immutable view of a range of child nodes and their
+                    associated keys.
+                  </p>
+                </td>
+<td>
+                  <p>
+                    It must model a Boost.Range concept.
+                  </p>
+                </td>
+</tr>
+</tbody>
+</table></div>
+<p>
+          In addition, the requirements for the iterator types are strengthened:
+        </p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem"><p>
+              The value type of <code class="computeroutput"><span class="identifier">Node</span><span class="special">::</span><span class="identifier">iterator</span></code>
+              must define a <code class="computeroutput"><span class="identifier">first_type</span></code>
+              type.
+            </p></li>
+<li class="listitem"><p>
+              The value type of <code class="computeroutput"><span class="identifier">Node</span><span class="special">::</span><span class="identifier">iterator</span></code>
+              must define a <code class="computeroutput"><span class="identifier">first</span></code>
+              member variable of type <code class="computeroutput"><span class="identifier">first_type</span></code>.
+            </p></li>
+<li class="listitem"><p>
+              Given an object <code class="computeroutput"><span class="identifier">itr</span></code>
+              of type <code class="computeroutput"><span class="identifier">Node</span><span class="special">::</span><span class="identifier">iterator</span></code>, <code class="computeroutput"><span class="identifier">itr</span><span class="special">-></span><span class="identifier">first</span></code>
+              must be convertible to <code class="computeroutput"><span class="identifier">Node</span><span class="special">::</span><span class="identifier">traits</span><span class="special">::</span><span class="identifier">key_type</span>
+              <span class="keyword">const</span><span class="special">&</span></code>.
+            </p></li>
+<li class="listitem"><p>
+              The value type of <code class="computeroutput"><span class="identifier">Node</span><span class="special">::</span><span class="identifier">iterator</span></code>
+              must define a <code class="computeroutput"><span class="identifier">second_type</span></code>
+              type.
+            </p></li>
+<li class="listitem"><p>
+              The value type of <code class="computeroutput"><span class="identifier">Node</span><span class="special">::</span><span class="identifier">iterator</span></code>
+              must define a <code class="computeroutput"><span class="identifier">second</span></code>
+              member variable of type <code class="computeroutput"><span class="identifier">second_type</span></code>.
+            </p></li>
+<li class="listitem"><p>
+              Given an object <code class="computeroutput"><span class="identifier">itr</span></code>
+              of type <code class="computeroutput"><span class="identifier">Node</span><span class="special">::</span><span class="identifier">iterator</span></code>, <code class="literal"><a class="link" href="../reference/dereference_iterator.html" title="dereference_iterator()">tree_node::dereference_iterator</a>(itr)</code>
+              must be convertible to <code class="computeroutput"><span class="identifier">Node</span><span class="special">&</span></code>.
+            </p></li>
+<li class="listitem"><p>
+              The value type of <code class="computeroutput"><span class="identifier">Node</span><span class="special">::</span><span class="identifier">const_iterator</span></code>
+              must define a <code class="computeroutput"><span class="identifier">first_type</span></code>
+              type.
+            </p></li>
+<li class="listitem"><p>
+              The value type of <code class="computeroutput"><span class="identifier">Node</span><span class="special">::</span><span class="identifier">const_iterator</span></code>
+              must define a <code class="computeroutput"><span class="identifier">first</span></code>
+              member variable of type <code class="computeroutput"><span class="identifier">first_type</span></code>.
+            </p></li>
+<li class="listitem"><p>
+              Given an object <code class="computeroutput"><span class="identifier">itr</span></code>
+              of type <code class="computeroutput"><span class="identifier">Node</span><span class="special">::</span><span class="identifier">const_iterator</span></code>, <code class="computeroutput"><span class="identifier">itr</span><span class="special">-></span><span class="identifier">first</span></code>
+              must be convertible to <code class="computeroutput"><span class="identifier">Node</span><span class="special">::</span><span class="identifier">traits</span><span class="special">::</span><span class="identifier">key_type</span>
+              <span class="keyword">const</span><span class="special">&</span></code>.
+            </p></li>
+<li class="listitem"><p>
+              The value type of <code class="computeroutput"><span class="identifier">Node</span><span class="special">::</span><span class="identifier">const_iterator</span></code>
+              must define a <code class="computeroutput"><span class="identifier">second_type</span></code>
+              type.
+            </p></li>
+<li class="listitem"><p>
+              The value type of <code class="computeroutput"><span class="identifier">Node</span><span class="special">::</span><span class="identifier">const_iterator</span></code>
+              must define a <code class="computeroutput"><span class="identifier">second</span></code>
+              member variable of type <code class="computeroutput"><span class="identifier">second_type</span></code>.
+            </p></li>
+<li class="listitem"><p>
+              Given an object <code class="computeroutput"><span class="identifier">itr</span></code>
+              of type <code class="computeroutput"><span class="identifier">Node</span><span class="special">::</span><span class="identifier">const_iterator</span></code>, <code class="literal"><a class="link" href="../reference/dereference_iterator.html" title="dereference_iterator()">tree_node::dereference_iterator</a>(itr)</code>
+              must be convertible to <code class="computeroutput"><span class="identifier">Node</span>
+              <span class="keyword">const</span><span class="special">&</span></code>.
+            </p></li>
+</ul></div>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.concepts.associative_tree_node.expressions"></a><a class="link" href="associative_tree_node.html#tree_node.concepts.associative_tree_node.expressions" title="Valid Expressions and Semantics">Valid
+        Expressions and Semantics</a>
+</h4></div></div></div>
+<p>
+          In addition to the expressions defined in the <a class="link" href="tree_node.html" title="Tree Node"><span class="bold"><strong>Tree Node</strong></span></a> concept, the following expressions
+          must be valid.
+        </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+                  <p>
+                    Name
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Expression
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Return Type
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Semantics
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Type requirements
+                  </p>
+                </th>
+<th>
+                  <p>
+                    <a href="http://en.wikipedia.org/wiki/Amortized_analysis" target="_top">Runtime
+                    Complexity</a>
+                  </p>
+                </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+                  <p>
+                    Child creation
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">node</span><span class="special">.</span><span class="identifier">emplace</span><span class="special">(</span>
+    <span class="identifier">key</span>
+  <span class="special">,</span> boost::forward<span class="special"><</span><span class="identifier">Args</span><span class="special">>(</span><span class="identifier">args</span><span class="special">)...</span>
+<span class="special">);</span>
+</pre>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">Node</span><span class="special">::</span><span class="identifier">iterator</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Returns an iterator pointing to the child that <code class="computeroutput"><span class="identifier">node</span></code> associates with <code class="computeroutput"><span class="identifier">key</span></code> if <code class="computeroutput"><span class="identifier">node</span></code>
+                    allows only one such association to exist; otherwise, creates
+                    a tree node to be associated with the specified key in the range
+                    of children of the invoking node, then returns an iterator pointing
+                    to the created node, which will initialize its data with the
+                    specified arguments.
+                  </p>
+                </td>
+<td>
+                </td>
+<td>
+                  <p>
+                    Logarithmic
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Child copy creation
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">node</span><span class="special">.</span><span class="identifier">insert</span><span class="special">(</span><span class="identifier">key</span><span class="special">,</span> <span class="identifier">const_node</span><span class="special">)</span>
+</pre>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">Node</span><span class="special">::</span><span class="identifier">iterator</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Returns an iterator pointing to the child that <code class="computeroutput"><span class="identifier">node</span></code> associates with <code class="computeroutput"><span class="identifier">key</span></code> if <code class="computeroutput"><span class="identifier">node</span></code>
+                    allows only one such association to exist; otherwise, creates
+                    a deep copy of <code class="computeroutput"><span class="identifier">const_node</span></code>
+                    to be associated with the specified key in the range of children
+                    of the invoking node, then returns an iterator pointing to the
+                    created node.
+                  </p>
+                </td>
+<td>
+                  <p>
+                    The data type must model the Copy Constructible and Movable
+                    concepts.
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Linear with respect to the number of descendants of <code class="computeroutput"><span class="identifier">const_node</span></code>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Child move insertion
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">node</span><span class="special">.</span><span class="identifier">insert</span><span class="special">(</span><span class="identifier">key</span><span class="special">,</span> <span class="identifier">source</span><span class="special">)</span>
+</pre>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">Node</span><span class="special">::</span><span class="identifier">iterator</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Returns an iterator pointing to the child that <code class="computeroutput"><span class="identifier">node</span></code> associates with <code class="computeroutput"><span class="identifier">key</span></code> if <code class="computeroutput"><span class="identifier">node</span></code>
+                    allows only one such association to exist; otherwise, move-constructs
+                    a copy of <code class="computeroutput"><span class="identifier">source</span></code>
+                    to be associated with the specified key in the range of children
+                    of the invoking node, then returns an iterator pointing to the
+                    created node.
+                  </p>
+                </td>
+<td>
+                  <p>
+                    The data type must model the Movable concept.
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Linear with respect to the number of children of <code class="computeroutput"><span class="identifier">source</span></code>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Child read-only search
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">const_node</span><span class="special">.</span><span class="identifier">find</span><span class="special">(</span><span class="identifier">key</span><span class="special">)</span>
+</pre>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">Node</span><span class="special">::</span><span class="identifier">const_iterator</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Returns an iterator pointing to a child node associated with
+                    the specified key, or <code class="computeroutput"><span class="identifier">const_node</span><span class="special">.</span><span class="identifier">end</span><span class="special">()</span></code> if no such child exists.
+                  </p>
+                </td>
+<td>
+                </td>
+<td>
+                  <p>
+                    Logarithmic
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Child search
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">node</span><span class="special">.</span><span class="identifier">find</span><span class="special">(</span><span class="identifier">key</span><span class="special">)</span>
+</pre>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">Node</span><span class="special">::</span><span class="identifier">iterator</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Returns an iterator pointing to a child node associated with
+                    the specified key, or <code class="computeroutput"><span class="identifier">node</span><span class="special">.</span><span class="identifier">end</span><span class="special">()</span></code> if no such child exists.
+                  </p>
+                </td>
+<td>
+                </td>
+<td>
+                  <p>
+                    Logarithmic
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Child read-only search lower bound
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">const_node</span><span class="special">.</span><span class="identifier">lower_bound</span><span class="special">(</span><span class="identifier">key</span><span class="special">)</span>
+</pre>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">Node</span><span class="special">::</span><span class="identifier">const_iterator</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Returns an iterator pointing to a child node associated with
+                    the lowest key not less than the specified key, or <code class="computeroutput"><span class="identifier">const_node</span><span class="special">.</span><span class="identifier">end</span><span class="special">()</span></code>
+                    if no such child exists.
+                  </p>
+                </td>
+<td>
+                </td>
+<td>
+                  <p>
+                    Logarithmic
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Child search lower bound
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">node</span><span class="special">.</span><span class="identifier">lower_bound</span><span class="special">(</span><span class="identifier">key</span><span class="special">)</span>
+</pre>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">Node</span><span class="special">::</span><span class="identifier">iterator</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Returns an iterator pointing to a child node associated with
+                    the lowest key not less than the specified key, or <code class="computeroutput"><span class="identifier">node</span><span class="special">.</span><span class="identifier">end</span><span class="special">()</span></code>
+                    if no such child exists.
+                  </p>
+                </td>
+<td>
+                </td>
+<td>
+                  <p>
+                    Logarithmic
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Child read-only search upper bound
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">const_node</span><span class="special">.</span><span class="identifier">upper_bound</span><span class="special">(</span><span class="identifier">key</span><span class="special">)</span>
+</pre>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">Node</span><span class="special">::</span><span class="identifier">const_iterator</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Returns an iterator pointing to a child node associated with
+                    the lowest key that is strictly greater than the specified key,
+                    or <code class="computeroutput"><span class="identifier">const_node</span><span class="special">.</span><span class="identifier">end</span><span class="special">()</span></code> if no such child exists.
+                  </p>
+                </td>
+<td>
+                </td>
+<td>
+                  <p>
+                    Logarithmic
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Child search upper bound
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">node</span><span class="special">.</span><span class="identifier">upper_bound</span><span class="special">(</span><span class="identifier">key</span><span class="special">)</span>
+</pre>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">Node</span><span class="special">::</span><span class="identifier">iterator</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Returns an iterator pointing to a child node associated with
+                    the lowest key that is strictly greater than the specified key,
+                    or <code class="computeroutput"><span class="identifier">node</span><span class="special">.</span><span class="identifier">end</span><span class="special">()</span></code>
+                    if no such child exists.
+                  </p>
+                </td>
+<td>
+                </td>
+<td>
+                  <p>
+                    Logarithmic
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Child read-only search range
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">const_node</span><span class="special">.</span><span class="identifier">equal_range</span><span class="special">(</span><span class="identifier">key</span><span class="special">)</span>
+</pre>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">Node</span><span class="special">::</span><span class="identifier">traits</span><span class="special">::</span><span class="identifier">const_iterator_range</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Returns a Boost.Range of all child nodes
+                    associated with the specified key. The child nodes in the range
+                    returned cannot be modified. If no such children exist, then
+                    the range will be empty.
+                  </p>
+                </td>
+<td>
+                </td>
+<td>
+                  <p>
+                    Logarithmic
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Child search range
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">node</span><span class="special">.</span><span class="identifier">equal_range</span><span class="special">(</span><span class="identifier">key</span><span class="special">)</span>
+</pre>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">Node</span><span class="special">::</span><span class="identifier">traits</span><span class="special">::</span><span class="identifier">iterator_range</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Returns a Boost.Range of all child nodes
+                    associated with the specified key. The child nodes in the range
+                    returned can be modified. If no such children exist, then the
+                    range will be empty.
+                  </p>
+                </td>
+<td>
+                </td>
+<td>
+                  <p>
+                    Logarithmic
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Remove children
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">node</span><span class="special">.</span><span class="identifier">erase</span><span class="special">(</span><span class="identifier">key</span><span class="special">)</span>
+</pre>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">Node</span><span class="special">::</span><span class="identifier">size_type</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Removes all child nodes associated with the specified key from
+                    the tree node. Returns the number of children removed.
+                  </p>
+                </td>
+<td>
+                </td>
+<td>
+                  <p>
+                    Linear with respect to the number of children and their descendants
+                    in the range to be removed, plus logarithmic
+                  </p>
+                </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.concepts.associative_tree_node.models"></a><a class="link" href="associative_tree_node.html#tree_node.concepts.associative_tree_node.models" title="Models">Models</a>
+</h4></div></div></div>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem"><p>
+              <a class="link" href="../reference/associative_node.html" title="associative_node<Key,Data,Selector>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">associative_node</span></code></a>
+            </p></li>
+<li class="listitem"><p>
+              <a class="link" href="../reference/associative_node_base.html" title="associative_node_base<Derived,Key,Data,Selector>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">associative_node_base</span></code></a>
+            </p></li>
+</ul></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-2013 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="reversible_tree_node.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../concepts.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="non_assoc_tree_node.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/tree_node/libs/tree_node/doc/html/tree_node/concepts/base_tree_node.html
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ sandbox/tree_node/libs/tree_node/doc/html/tree_node/concepts/base_tree_node.html	2013-07-07 14:52:52 EDT (Sun, 07 Jul 2013)	(r84977)
@@ -0,0 +1,953 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Base Tree Node</title>
+<link rel="stylesheet" href="http://www.boost.org/doc/libs/release/doc/src/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.77.1">
+<link rel="home" href="../../index.html" title="Chapter 1. tree_node 0.5">
+<link rel="up" href="../concepts.html" title="Concepts">
+<link rel="prev" href="movable_tree_node.html" title="Movable Tree Node">
+<link rel="next" href="reversible_tree_node.html" title="Reversible Tree 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="movable_tree_node.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../concepts.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="reversible_tree_node.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="tree_node.concepts.base_tree_node"></a><a class="link" href="base_tree_node.html" title="Base Tree Node">Base Tree Node</a>
+</h3></div></div></div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.concepts.base_tree_node.description"></a><a class="link" href="base_tree_node.html#tree_node.concepts.base_tree_node.description" title="Description">Description</a>
+</h4></div></div></div>
+<p>
+          Models of this concept allow the <a class="link" href="tree_node.html" title="Tree Node"><span class="bold"><strong>Tree Node</strong></span></a> adaptor types to parameterically
+          inherit their functionality for greater reuse.
+        </p>
+<p>
+          In practice, each <span class="bold"><strong>Base Tree Node</strong></span> model
+          must do the following:
+        </p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem"><p>
+              Inherit from either <a class="link" href="../reference/tree_node_base.html" title="tree_node_base<Derived>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">tree_node_base</span></code></a> or the return
+              type of a <a class="link" href="base_type_generator.html" title="Base Type Generator"><span class="bold"><strong>Base Type Generator</strong></span></a>.
+            </p></li>
+<li class="listitem"><p>
+              Take in the derived type and the data type as template parameters.
+            </p></li>
+<li class="listitem"><p>
+              Also take in the key type if the derived type is (possibly) an <a class="link" href="associative_tree_node.html" title="Associative Tree Node"><span class="bold"><strong>Associative
+              Tree Node</strong></span></a> model.
+            </p></li>
+<li class="listitem"><p>
+              Declare a template instantiation of <a class="link" href="../reference/tree_node_base.html" title="tree_node_base<Derived>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">tree_node_base</span></code></a> with the derived
+              type as a <code class="computeroutput"><span class="keyword">friend</span> <span class="keyword">struct</span></code>
+              if it overrides any of <a class="link" href="../reference/tree_node_base.html" title="tree_node_base<Derived>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">tree_node_base</span></code></a> implementation
+              methods.
+            </p></li>
+</ul></div>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.concepts.base_tree_node.refinement_of"></a><a class="link" href="base_tree_node.html#tree_node.concepts.base_tree_node.refinement_of" title="Refinement of">Refinement
+        of</a>
+</h4></div></div></div>
+<p>
+          <a class="link" href="tree_node.html" title="Tree Node"><span class="bold"><strong>Tree
+          Node</strong></span></a>
+        </p>
+</div>
+<div class="variablelist">
+<p class="title"><b>Notation</b></p>
+<dl class="variablelist">
+<dt><span class="term"><code class="computeroutput"><span class="identifier">Base</span></code></span></dt>
+<dd><p>
+              A type that models the <span class="bold"><strong>Base Tree Node</strong></span>
+              concept.
+            </p></dd>
+<dt><span class="term"><code class="computeroutput"><span class="identifier">base</span></code></span></dt>
+<dd><p>
+              An object of type <code class="computeroutput"><span class="identifier">Base</span><span class="special">&</span></code>.
+            </p></dd>
+<dt><span class="term"><code class="computeroutput"><span class="identifier">const_base</span></code></span></dt>
+<dd><p>
+              An object of type <code class="computeroutput"><span class="identifier">Base</span> <span class="keyword">const</span><span class="special">&</span></code>.
+            </p></dd>
+<dt><span class="term"><code class="computeroutput"><span class="identifier">Node</span></code></span></dt>
+<dd><p>
+              A <a class="link" href="tree_node.html" title="Tree Node"><span class="bold"><strong>Tree
+              Node</strong></span></a> model that inherits from <code class="computeroutput"><span class="identifier">Base</span></code>.
+            </p></dd>
+<dt><span class="term"><code class="computeroutput"><span class="identifier">copy</span></code></span></dt>
+<dd><p>
+              An object of type <code class="computeroutput"><span class="identifier">Node</span> <span class="keyword">const</span><span class="special">&</span></code>.
+            </p></dd>
+<dt><span class="term"><code class="computeroutput"><span class="identifier">source</span></code></span></dt>
+<dd><p>
+              An object of type <code class="computeroutput"><span class="identifier">Node</span><span class="special">&&</span></code>.
+            </p></dd>
+<dt><span class="term"><code class="computeroutput"><span class="identifier">alloc</span></code></span></dt>
+<dd><p>
+              An object of type <code class="computeroutput"><span class="identifier">Node</span><span class="special">::</span><span class="identifier">traits</span><span class="special">::</span><span class="identifier">allocator_reference</span></code>.
+            </p></dd>
+<dt><span class="term"><code class="computeroutput"><span class="identifier">itr</span></code></span></dt>
+<dd><p>
+              An object of type <code class="computeroutput"><span class="identifier">Node</span><span class="special">::</span><span class="identifier">iterator</span></code>.
+            </p></dd>
+<dt><span class="term"><code class="computeroutput"><span class="identifier">BIC</span></code></span></dt>
+<dd><p>
+              A type that models the Boolean Integral Constant concept.
+            </p></dd>
+<dt><span class="term"><code class="computeroutput"><span class="identifier">bic</span></code></span></dt>
+<dd><p>
+              An object of type <code class="computeroutput"><span class="identifier">BIC</span></code>.
+            </p></dd>
+</dl>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.concepts.base_tree_node.types"></a><a class="link" href="base_tree_node.html#tree_node.concepts.base_tree_node.types" title="Associated Types">Associated
+        Types</a>
+</h4></div></div></div>
+<p>
+          No additional types beyond those defined in the <a class="link" href="tree_node.html" title="Tree Node"><span class="bold"><strong>Tree Node</strong></span></a> concept.
+        </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.concepts.base_tree_node.expressions"></a><a class="link" href="base_tree_node.html#tree_node.concepts.base_tree_node.expressions" title="Valid Expressions and Semantics">Valid
+        Expressions and Semantics</a>
+</h4></div></div></div>
+<p>
+          In addition to the expressions defined in the <a class="link" href="tree_node.html" title="Tree Node"><span class="bold"><strong>Tree Node</strong></span></a> concept, the following expressions
+          must be valid.
+        </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+                  <p>
+                    Name
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Expression
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Return Type
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Semantics
+                  </p>
+                </th>
+<th>
+                  <p>
+                    <a href="http://en.wikipedia.org/wiki/Amortized_analysis" target="_top">Runtime
+                    Complexity</a>
+                  </p>
+                </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+                  <p>
+                    Derived access
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">base</span><span class="special">.</span><span class="identifier">get_derived</span><span class="special">()</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">Node</span><span class="special">::</span><span class="identifier">pointer</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Returns a pointer to the same <code class="computeroutput"><span class="identifier">Node</span></code>
+                    object.
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Constant
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Derived read-only access
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">const_base</span><span class="special">.</span><span class="identifier">get_derived</span><span class="special">()</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">Node</span><span class="special">::</span><span class="identifier">const_pointer</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Returns a pointer to the same immutable <code class="computeroutput"><span class="identifier">Node</span></code>
+                    object.
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Constant
+                  </p>
+                </td>
+</tr>
+</tbody>
+</table></div>
+<p>
+          Also, the following expressions must be valid (unless the <code class="computeroutput"><span class="identifier">Node</span></code> type does <span class="emphasis"><em>not</em></span>
+          define the operation within which the expression can be invoked).
+        </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+                  <p>
+                    Name
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Expression
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Return Type
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Semantics
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Type requirements
+                  </p>
+                </th>
+<th>
+                  <p>
+                    <a href="http://en.wikipedia.org/wiki/Amortized_analysis" target="_top">Runtime
+                    Complexity</a>
+                  </p>
+                </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+                  <p>
+                    Derived copy constructor
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">Base</span><span class="special">(</span><span class="identifier">copy</span><span class="special">)</span></code>
+                  </p>
+                </td>
+<td>
+                </td>
+<td>
+                  <p>
+                    Constructs a deep copy of the specified node.
+                  </p>
+                </td>
+<td>
+                  <p>
+                    The initializer list of the <code class="computeroutput"><span class="identifier">Node</span></code>
+                    copy constructor must be able to call this constructor.
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Linear with respect to the number of descendants
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Derived copy constructor with allocator
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">Base</span><span class="special">(</span><span class="identifier">copy</span><span class="special">,</span>
+                    <span class="identifier">alloc</span><span class="special">)</span></code>
+                  </p>
+                </td>
+<td>
+                </td>
+<td>
+                  <p>
+                    Constructs a deep copy of the specified node. The new node will
+                    use the specified allocator (if the allocator reference type
+                    is mutable) or a copy of it (if the allocator reference type
+                    is to <code class="computeroutput"><span class="keyword">const</span></code>) to
+                    construct its own parent node or its own child nodes if and when
+                    invoking its respective creation methods.
+                  </p>
+                </td>
+<td>
+                  <p>
+                    The initializer list of the <code class="computeroutput"><span class="identifier">Node</span></code>
+                    copy constructor with allocator must be able to call this constructor.
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Linear with respect to the number of descendants
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Derived move constructor
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">Base</span><span class="special">(</span><span class="identifier">source</span><span class="special">)</span></code>
+                  </p>
+                </td>
+<td>
+                </td>
+<td>
+                  <p>
+                    Transfers the contents of the specified node to this one.
+                  </p>
+                </td>
+<td>
+                  <p>
+                    The initializer list of the <code class="computeroutput"><span class="identifier">Node</span></code>
+                    move constructor must be able to call this constructor.
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Linear with respect to the number of children
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Derived move constructor with allocator
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">Base</span><span class="special">(</span><span class="identifier">source</span><span class="special">,</span>
+                    <span class="identifier">alloc</span><span class="special">)</span></code>
+                  </p>
+                </td>
+<td>
+                </td>
+<td>
+                  <p>
+                    Transfers the contents of the specified node to this one. The
+                    new node will use the specified allocator (if the allocator reference
+                    type is mutable) or a copy of it (if the allocator reference
+                    type is to <code class="computeroutput"><span class="keyword">const</span></code>)
+                    to construct its own parent node or its own child nodes if and
+                    when invoking its respective creation methods.
+                  </p>
+                </td>
+<td>
+                  <p>
+                    The initializer list of the <code class="computeroutput"><span class="identifier">Node</span></code>
+                    move constructor with allocator must be able to call this constructor.
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Linear with respect to the number of children
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Base descendant cloning
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">base</span><span class="special">.</span><span class="identifier">clone_descendants</span><span class="special">(</span><span class="identifier">copy</span><span class="special">)</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">void</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Structurally modifies the invoking node so that it is a deep
+                    copy of the specified node.
+                  </p>
+                </td>
+<td>
+                  <p>
+                    The body of the <code class="computeroutput"><span class="identifier">Node</span></code>
+                    copy constructor must be able to call this method.
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Linear with respect to the number of descendants
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Base descendant movement
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">base</span><span class="special">.</span><span class="identifier">move_descendants</span><span class="special">(</span><span class="identifier">source</span><span class="special">)</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">void</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Structurally modifies the invoking node so that it stores the
+                    contents of the specified node.
+                  </p>
+                </td>
+<td>
+                  <p>
+                    The body of the <code class="computeroutput"><span class="identifier">Node</span></code>
+                    move constructor must be able to call this method.
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Linear with respect to the number of children
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Base copy assignment
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">base</span><span class="special">.</span><span class="identifier">copy_assign</span><span class="special">(</span><span class="identifier">copy</span><span class="special">)</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">void</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Structurally modifies the invoking node so that it is a deep
+                    copy of the specified node.
+                  </p>
+                </td>
+<td>
+                  <p>
+                    The body of the <code class="computeroutput"><span class="identifier">Node</span></code>
+                    copy assignment operator must be able to call this method.
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Linear with respect to the number of descendants
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Base move assignment
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">base</span><span class="special">.</span><span class="identifier">move_assign</span><span class="special">(</span><span class="identifier">source</span><span class="special">)</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">void</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Structurally modifies the invoking node so that it stores the
+                    contents of the specified node.
+                  </p>
+                </td>
+<td>
+                  <p>
+                    The body of the <code class="computeroutput"><span class="identifier">Node</span></code>
+                    move assignment operator must be able to call this method.
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Linear with respect to the number of children
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Assignment notification
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">base</span><span class="special">.</span><span class="identifier">on_post_assign</span><span class="special">()</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">void</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Updates any <code class="computeroutput"><span class="identifier">Node</span></code>-specific
+                    information invalidated by <code class="computeroutput"><span class="identifier">Base</span></code>
+                    copy or move assignment. In practice, propagates <code class="computeroutput"><span class="identifier">Base</span></code>-specific values affected
+                    by the assignment up the tree node's chain of ancestors.
+                  </p>
+                </td>
+<td>
+                  <p>
+                    The body of the <code class="computeroutput"><span class="identifier">Node</span></code>
+                    copy or move assignment operator must be able to call this method.
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Linear with respect to the number of ancestors
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Key-value modified notification
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">base</span><span class="special">.</span><span class="identifier">on_post_modify_value</span><span class="special">(</span><span class="identifier">Key</span><span class="special">())</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">void</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Updates any <code class="computeroutput"><span class="identifier">Node</span></code>-specific
+                    information invalidated by operations that modify the value that
+                    the tree node associates with the specified key.
+                  </p>
+                </td>
+<td>
+                  <p>
+                    The body of the <code class="computeroutput"><span class="identifier">Node</span></code>
+                    key-value modification function must be able to call this method,
+                    and <code class="literal"><a class="link" href="../reference/has_key.html#tree_node.reference.has_key.result_of" title="Return Type Metafunction Synopsis">tree_node::result_of::has_key</a><Node,Key></code>
+                    must be equivalent to boost::mpl::true_.
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Linear with respect to the number of ancestors
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Key-value propagated notification
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">base</span><span class="special">.</span><span class="identifier">on_post_propagate_value</span><span class="special">(</span><span class="identifier">Key</span><span class="special">())</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">void</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Updates any <code class="computeroutput"><span class="identifier">Node</span></code>-specific
+                    information invalidated by operations that propagate the value
+                    that the tree node associates with the specified key up the tree
+                    node's chain of ancestors.
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="literal"><a class="link" href="../reference/has_key.html#tree_node.reference.has_key.result_of" title="Return Type Metafunction Synopsis">tree_node::result_of::has_key</a><Node,Key></code>
+                    must be equivalent to boost::mpl::true_.
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Linear with respect to the number of ancestors
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Key-value once-propagated notification
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">base</span><span class="special">.</span><span class="identifier">on_post_propagate_value_once</span><span class="special">(</span><span class="identifier">Key</span><span class="special">())</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">void</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Updates any <code class="computeroutput"><span class="identifier">Node</span></code>-specific
+                    information invalidated by operations that propagate the value
+                    that the tree node associates with the specified key up to the
+                    tree node's parent.
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="literal"><a class="link" href="../reference/has_key.html#tree_node.reference.has_key.result_of" title="Return Type Metafunction Synopsis">tree_node::result_of::has_key</a><Node,Key></code>
+                    must be equivalent to boost::mpl::true_.
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Constant
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Insertion notification
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">base</span><span class="special">.</span><span class="identifier">on_post_inserted</span><span class="special">(</span><span class="identifier">itr</span><span class="special">,</span>
+                    <span class="identifier">bic</span><span class="special">)</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">void</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Updates any <code class="computeroutput"><span class="identifier">Node</span></code>-specific
+                    information invalidated by operations that insert or emplace
+                    the invoking node. The specified iterator points to this node.
+                  </p>
+                </td>
+<td>
+                  <p>
+                    The body of any <code class="computeroutput"><span class="identifier">Node</span></code>
+                    insertion or emplacement member function must be able to call
+                    this method.
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Amortized constant if <code class="computeroutput"><span class="identifier">BIC</span><span class="special">::</span><span class="identifier">value</span>
+                    <span class="special">==</span> <span class="keyword">true</span></code>,
+                    linear with respect to the number of siblings otherwise
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Range insertion notification
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">base</span><span class="special">.</span><span class="identifier">on_post_insert</span><span class="special">(</span><span class="identifier">itr</span><span class="special">,</span>
+                    <span class="identifier">itr_end</span><span class="special">,</span>
+                    <span class="identifier">bic</span><span class="special">)</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">void</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Updates any <code class="computeroutput"><span class="identifier">Node</span></code>-specific
+                    information invalidated by operations that insert or emplace
+                    the nodes in the specified range.
+                  </p>
+                </td>
+<td>
+                  <p>
+                    The body of any <code class="computeroutput"><span class="identifier">Node</span></code>
+                    insertion or emplacement member function must be able to call
+                    this method.
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Amortized constant if <code class="computeroutput"><span class="identifier">BIC</span><span class="special">::</span><span class="identifier">value</span>
+                    <span class="special">==</span> <span class="keyword">true</span></code>,
+                    linear with respect to the number of siblings otherwise
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Erasure notification
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">base</span><span class="special">.</span><span class="identifier">on_post_erase</span><span class="special">(</span><span class="identifier">bic</span><span class="special">)</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">void</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Updates any <code class="computeroutput"><span class="identifier">Node</span></code>-specific
+                    information invalidated by operations that remove the specified
+                    children and their descendants from a node.
+                  </p>
+                </td>
+<td>
+                  <p>
+                    The body of any <code class="computeroutput"><span class="identifier">Node</span></code>
+                    erasure member function must be able to call this method.
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Linear with respect to the number of children plus the number
+                    of ancestors
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Clear notification
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">base</span><span class="special">.</span><span class="identifier">on_post_clear</span><span class="special">()</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">void</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Updates any <code class="computeroutput"><span class="identifier">Node</span></code>-specific
+                    information invalidated by operations that remove all descendants
+                    from a node.
+                  </p>
+                </td>
+<td>
+                  <p>
+                    The body of the <code class="computeroutput"><span class="identifier">Node</span><span class="special">::</span><span class="identifier">clear</span><span class="special">()</span></code> member function must be able
+                    to call this method.
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Linear with respect to the number of children removed plus the
+                    number of ancestors
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Left rotation notification
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">base</span><span class="special">.</span><span class="identifier">on_post_rotate_left</span><span class="special">()</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">void</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Updates any <code class="computeroutput"><span class="identifier">Node</span></code>-specific
+                    information invalidated by operations that rotate a node to the
+                    left.
+                  </p>
+                </td>
+<td>
+                  <p>
+                    The body of the <code class="computeroutput"><span class="identifier">Node</span><span class="special">::</span><span class="identifier">rotate_left</span><span class="special">()</span></code> member function must be able
+                    to call this method.
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Linear with respect to the number of ancestors
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Right rotation notification
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">base</span><span class="special">.</span><span class="identifier">on_post_rotate_right</span><span class="special">()</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">void</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Updates any <code class="computeroutput"><span class="identifier">Node</span></code>-specific
+                    information invalidated by operations that rotate a node to the
+                    right.
+                  </p>
+                </td>
+<td>
+                  <p>
+                    The body of the <code class="computeroutput"><span class="identifier">Node</span><span class="special">::</span><span class="identifier">rotate_right</span><span class="special">()</span></code> member function must be able
+                    to call this method.
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Linear with respect to the number of ancestors
+                  </p>
+                </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.concepts.base_tree_node.models"></a><a class="link" href="base_tree_node.html#tree_node.concepts.base_tree_node.models" title="Models">Models</a>
+</h4></div></div></div>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem"><p>
+              <a class="link" href="../reference/binary_node_base.html" title="binary_node_base<Derived,T,Selector>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">binary_node_base</span></code></a>
+            </p></li>
+<li class="listitem"><p>
+              <a class="link" href="../reference/nary_node_base.html" title="nary_node_base<Derived,T,Selector>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">nary_node_base</span></code></a>
+            </p></li>
+<li class="listitem"><p>
+              <a class="link" href="../reference/associative_node_base.html" title="associative_node_base<Derived,Key,Data,Selector>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">associative_node_base</span></code></a>
+            </p></li>
+<li class="listitem"><p>
+              <a class="link" href="../reference/with_accumulation_base.html" title="with_accumulation_base< Derived , BaseGenerator , T1 , T2 , Key , Tag , IncludesAllDescendants , IncludesRoot , Value >"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">with_accumulation_base</span></code></a>
+            </p></li>
+<li class="listitem"><p>
+              <a class="link" href="../reference/with_count_base.html" title="with_count_base<Derived,BaseGenerator,T1,T2,Count>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">with_count_base</span></code></a>
+            </p></li>
+<li class="listitem"><p>
+              <a class="link" href="../reference/with_height_base.html" title="with_height_base<Derived,BaseGenerator,T1,T2,Height>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">with_height_base</span></code></a>
+            </p></li>
+<li class="listitem"><p>
+              <a class="link" href="../reference/with_position_base.html" title="with_position_base<Derived,BaseGenerator,T1,T2>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">with_position_base</span></code></a>
+            </p></li>
+<li class="listitem"><p>
+              <a class="link" href="../reference/with_rb_flag_base.html" title="with_red_black_flag_base<Derived,BaseGenerator,T1,T2>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">with_red_black_flag_base</span></code></a>
+            </p></li>
+</ul></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-2013 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="movable_tree_node.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../concepts.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="reversible_tree_node.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/tree_node/libs/tree_node/doc/html/tree_node/concepts/base_type_generator.html
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ sandbox/tree_node/libs/tree_node/doc/html/tree_node/concepts/base_type_generator.html	2013-07-07 14:52:52 EDT (Sun, 07 Jul 2013)	(r84977)
@@ -0,0 +1,169 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Base Type Generator</title>
+<link rel="stylesheet" href="http://www.boost.org/doc/libs/release/doc/src/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.77.1">
+<link rel="home" href="../../index.html" title="Chapter 1. tree_node 0.5">
+<link rel="up" href="../concepts.html" title="Concepts">
+<link rel="prev" href="node_type_generator.html" title="Node Type Generator">
+<link rel="next" href="tree_node_iterator.html" title="Tree Node 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="node_type_generator.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../concepts.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="tree_node_iterator.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="tree_node.concepts.base_type_generator"></a><a class="link" href="base_type_generator.html" title="Base Type Generator">Base Type Generator</a>
+</h3></div></div></div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.concepts.base_type_generator.description"></a><a class="link" href="base_type_generator.html#tree_node.concepts.base_type_generator.description" title="Description">Description</a>
+</h4></div></div></div>
+<p>
+          A <span class="bold"><strong>Base Type Generator</strong></span> is a Metafunction Class that returns a <a class="link" href="base_tree_node.html" title="Base Tree Node"><span class="bold"><strong>Base
+          Tree Node</strong></span></a> from which <a class="link" href="tree_node.html" title="Tree Node"><span class="bold"><strong>Tree Node</strong></span></a> adaptor types can inherit the necessary
+          functionality.
+        </p>
+</div>
+<div class="variablelist">
+<p class="title"><b>Notation</b></p>
+<dl class="variablelist">
+<dt><span class="term"><code class="computeroutput"><span class="identifier">Generator</span></code></span></dt>
+<dd><p>
+              A type that models the <span class="bold"><strong>Base Type Generator</strong></span>
+              concept.
+            </p></dd>
+<dt><span class="term"><code class="computeroutput"><span class="identifier">Derived</span></code></span></dt>
+<dd><p>
+              The most descendant type that will inherit from the return type of
+              <code class="computeroutput"><span class="identifier">Generator</span></code>.
+            </p></dd>
+<dt><span class="term"><code class="computeroutput"><span class="identifier">Key</span></code></span></dt>
+<dd><p>
+              The key type of the <a class="link" href="associative_tree_node.html" title="Associative Tree Node"><span class="bold"><strong>Associative Tree Node</strong></span></a> to be returned.
+            </p></dd>
+<dt><span class="term"><code class="computeroutput"><span class="identifier">Data</span></code></span></dt>
+<dd><p>
+              The data type of the <a class="link" href="tree_node.html" title="Tree Node"><span class="bold"><strong>Tree Node</strong></span></a> to be returned.
+            </p></dd>
+</dl>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.concepts.base_type_generator.expressions"></a><a class="link" href="base_type_generator.html#tree_node.concepts.base_type_generator.expressions" title="Valid Expressions and Semantics">Valid
+        Expressions and Semantics</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>
+                    Return Type
+                  </p>
+                </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+                  <p>
+                    Non-associative invocation
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="literal">boost::mpl::apply_wrap2<Generator,Derived,Data>::type</code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    A <a class="link" href="non_assoc_tree_node.html" title="Non-Associative Tree Node"><span class="bold"><strong>Non-Associative Tree Node</strong></span></a> model
+                    whose <code class="computeroutput"><span class="identifier">traits</span><span class="special">::</span><span class="identifier">data_type</span></code>
+                    is the same as <code class="computeroutput"><span class="identifier">Data</span></code>.
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Associative invocation
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="literal">boost::mpl::apply_wrap3<Generator,Derived,Key,Data>::type</code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    An <a class="link" href="associative_tree_node.html" title="Associative Tree Node"><span class="bold"><strong>Associative Tree Node</strong></span></a> model whose
+                    <code class="computeroutput"><span class="identifier">traits</span><span class="special">::</span><span class="identifier">key_type</span></code> is the same as <code class="computeroutput"><span class="identifier">Key</span></code> and whose <code class="computeroutput"><span class="identifier">traits</span><span class="special">::</span><span class="identifier">data_type</span></code> is the same as <code class="computeroutput"><span class="identifier">Data</span></code>.
+                  </p>
+                </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.concepts.base_type_generator.models"></a><a class="link" href="base_type_generator.html#tree_node.concepts.base_type_generator.models" title="Models">Models</a>
+</h4></div></div></div>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem"><p>
+              <a class="link" href="../reference/binary_node_base_gen.html" title="binary_node_base_gen<Size,AllocatorSelector>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">binary_node_base_gen</span></code></a>
+            </p></li>
+<li class="listitem"><p>
+              <a class="link" href="../reference/nary_node_base_gen.html" title="nary_node_base_gen<Selector>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">nary_node_base_gen</span></code></a>
+            </p></li>
+<li class="listitem"><p>
+              <a class="link" href="../reference/assoc_node_base_gen.html" title="associative_node_base_gen<Selector>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">associative_node_base_gen</span></code></a>
+            </p></li>
+<li class="listitem"><p>
+              <a class="link" href="../reference/with_accumulation_base_gen.html" title="with_accumulation_base_gen<BaseGenerator>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">with_accumulation_base_gen</span></code></a>
+            </p></li>
+<li class="listitem"><p>
+              <a class="link" href="../reference/with_count_base_gen.html" title="with_count_base_gen<BaseGenerator>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">with_count_base_gen</span></code></a>
+            </p></li>
+<li class="listitem"><p>
+              <a class="link" href="../reference/with_height_base_gen.html" title="with_height_base_gen<BaseGenerator>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">with_height_base_gen</span></code></a>
+            </p></li>
+<li class="listitem"><p>
+              <a class="link" href="../reference/with_position_base_gen.html" title="with_position_base_gen<BaseGenerator>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">with_position_base_gen</span></code></a>
+            </p></li>
+<li class="listitem"><p>
+              <a class="link" href="../reference/with_rb_flag_base_gen.html" title="with_red_black_flag_base_gen<BaseGenerator>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">with_red_black_flag_base_gen</span></code></a>
+            </p></li>
+</ul></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-2013 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="node_type_generator.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../concepts.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="tree_node_iterator.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/tree_node/libs/tree_node/doc/html/tree_node/concepts/binary_tree_node.html
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ sandbox/tree_node/libs/tree_node/doc/html/tree_node/concepts/binary_tree_node.html	2013-07-07 14:52:52 EDT (Sun, 07 Jul 2013)	(r84977)
@@ -0,0 +1,617 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Binary Tree Node</title>
+<link rel="stylesheet" href="http://www.boost.org/doc/libs/release/doc/src/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.77.1">
+<link rel="home" href="../../index.html" title="Chapter 1. tree_node 0.5">
+<link rel="up" href="../concepts.html" title="Concepts">
+<link rel="prev" href="non_assoc_tree_node.html" title="Non-Associative Tree Node">
+<link rel="next" href="nary_tree_node.html" title="N-ary Tree 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="non_assoc_tree_node.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../concepts.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="nary_tree_node.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="tree_node.concepts.binary_tree_node"></a><a class="link" href="binary_tree_node.html" title="Binary Tree Node">Binary Tree Node</a>
+</h3></div></div></div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.concepts.binary_tree_node.description"></a><a class="link" href="binary_tree_node.html#tree_node.concepts.binary_tree_node.description" title="Description">Description</a>
+</h4></div></div></div>
+<p>
+          Models of this concept store at most two child nodes: left and right. The
+          operations that this concept defines include access to these children and
+          rotations that use the appropriate child as a pivot node.
+        </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.concepts.binary_tree_node.refinement_of"></a><a class="link" href="binary_tree_node.html#tree_node.concepts.binary_tree_node.refinement_of" title="Refinement of">Refinement
+        of</a>
+</h4></div></div></div>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem"><p>
+              <a class="link" href="non_assoc_tree_node.html" title="Non-Associative Tree Node"><span class="bold"><strong>Non-Associative
+              Tree Node</strong></span></a>
+            </p></li>
+<li class="listitem"><p>
+              <a class="link" href="reversible_tree_node.html" title="Reversible Tree Node"><span class="bold"><strong>Reversible
+              Tree Node</strong></span></a>
+            </p></li>
+</ul></div>
+</div>
+<div class="variablelist">
+<p class="title"><b>Notation</b></p>
+<dl class="variablelist">
+<dt><span class="term"><code class="computeroutput"><span class="identifier">Node</span></code></span></dt>
+<dd><p>
+              A type that models the <span class="bold"><strong>Binary Tree Node</strong></span>
+              concept.
+            </p></dd>
+<dt><span class="term"><code class="computeroutput"><span class="identifier">node</span></code></span></dt>
+<dd><p>
+              An object of type <code class="computeroutput"><span class="identifier">Node</span><span class="special">&</span></code>.
+            </p></dd>
+<dt><span class="term"><code class="computeroutput"><span class="identifier">const_node</span></code></span></dt>
+<dd><p>
+              An object of type <code class="computeroutput"><span class="identifier">Node</span> <span class="keyword">const</span><span class="special">&</span></code>.
+            </p></dd>
+<dt><span class="term"><code class="computeroutput"><span class="identifier">rvalue_node</span></code></span></dt>
+<dd><p>
+              An object of type <code class="computeroutput"><span class="identifier">Node</span><span class="special">&&</span></code>.
+            </p></dd>
+<dt><span class="term"><code class="computeroutput"><span class="identifier">Args</span></code></span></dt>
+<dd><p>
+              The type of <code class="computeroutput"><span class="identifier">args</span></code>.
+            </p></dd>
+<dt><span class="term"><code class="computeroutput"><span class="identifier">args</span></code></span></dt>
+<dd><p>
+              Arguments to be forwarded to the appropriate <code class="computeroutput"><span class="identifier">Node</span><span class="special">::</span><span class="identifier">traits</span><span class="special">::</span><span class="identifier">data_type</span></code>
+              constructor.
+            </p></dd>
+</dl>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.concepts.binary_tree_node.types"></a><a class="link" href="binary_tree_node.html#tree_node.concepts.binary_tree_node.types" title="Associated Types">Associated
+        Types</a>
+</h4></div></div></div>
+<p>
+          No additional types beyond those defined in the <a class="link" href="non_assoc_tree_node.html" title="Non-Associative Tree Node"><span class="bold"><strong>Non-Associative Tree Node</strong></span></a> and <a class="link" href="reversible_tree_node.html" title="Reversible Tree Node"><span class="bold"><strong>Reversible Tree Node</strong></span></a> concepts.
+        </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.concepts.binary_tree_node.expressions"></a><a class="link" href="binary_tree_node.html#tree_node.concepts.binary_tree_node.expressions" title="Valid Expressions and Semantics">Valid
+        Expressions and Semantics</a>
+</h4></div></div></div>
+<p>
+          In addition to the expressions defined in the <a class="link" href="non_assoc_tree_node.html" title="Non-Associative Tree Node"><span class="bold"><strong>Non-Associative Tree Node</strong></span></a> and <a class="link" href="reversible_tree_node.html" title="Reversible Tree Node"><span class="bold"><strong>Reversible Tree Node</strong></span></a> concepts, the following
+          expressions must be valid.
+        </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+                  <p>
+                    Name
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Expression
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Return Type
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Semantics
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Type requirements
+                  </p>
+                </th>
+<th>
+                  <p>
+                    <a href="http://en.wikipedia.org/wiki/Amortized_analysis" target="_top">Runtime
+                    Complexity</a>
+                  </p>
+                </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+                  <p>
+                    Parent-of-left creation
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">node</span><span class="special">.</span><span class="identifier">emplace_parent_of_left</span><span class="special">(</span>
+    boost::forward<span class="special"><</span><span class="identifier">Args</span><span class="special">>(</span><span class="identifier">args</span><span class="special">)...</span>
+<span class="special">)</span>
+</pre>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">Node</span><span class="special">::</span><span class="identifier">pointer</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Creates and returns a tree node to be stored as the parent of
+                    the invoking node. The node returned will initialize its data
+                    with the specified arguments. The invoking node will become the
+                    left child of the new node.
+                  </p>
+                  <p>
+                    If a parent existed previously, that node shall become the parent
+                    of the new node, and the new node shall take the place of the
+                    invoking node.
+                  </p>
+                </td>
+<td>
+                </td>
+<td>
+                  <p>
+                    Amortized constant
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Parent-of-right creation
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">node</span><span class="special">.</span><span class="identifier">emplace_parent_of_right</span><span class="special">(</span>
+    boost::forward<span class="special"><</span><span class="identifier">Args</span><span class="special">>(</span><span class="identifier">args</span><span class="special">)...</span>
+<span class="special">)</span>
+</pre>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">Node</span><span class="special">::</span><span class="identifier">pointer</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Creates and returns a tree node to be stored as the parent of
+                    the invoking node. The node returned will initialize its data
+                    with the specified arguments. The invoking node will become the
+                    right child of the new node.
+                  </p>
+                  <p>
+                    If a parent existed previously, that node shall become the parent
+                    of the new node, and the new node shall take the place of the
+                    invoking node.
+                  </p>
+                </td>
+<td>
+                </td>
+<td>
+                  <p>
+                    Amortized constant
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Left child creation
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">node</span><span class="special">.</span><span class="identifier">emplace_left</span><span class="special">(</span>
+    boost::forward<span class="special"><</span><span class="identifier">Args</span><span class="special">>(</span><span class="identifier">args</span><span class="special">)...</span>
+<span class="special">)</span>
+</pre>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">Node</span><span class="special">::</span><span class="identifier">iterator</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Creates and returns a tree node to be stored as the left child
+                    of the invoking node. The node returned will initialize its data
+                    with the specified arguments.
+                  </p>
+                  <p>
+                    If a left child existed previously, that node shall become the
+                    left child of the new node.
+                  </p>
+                </td>
+<td>
+                </td>
+<td>
+                  <p>
+                    Amortized constant
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Left child copy creation
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">node</span><span class="special">.</span><span class="identifier">insert_left</span><span class="special">(</span><span class="identifier">const_node</span><span class="special">)</span>
+</pre>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">Node</span><span class="special">::</span><span class="identifier">iterator</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Creates and returns a deep copy of <code class="computeroutput"><span class="identifier">const_node</span></code>
+                    to be stored as the left child of the invoking node.
+                  </p>
+                  <p>
+                    If a left child existed previously, that node shall become the
+                    left-most descendant of the new node, or the first node encountered
+                    during a forward in-order traversal of the new node's descendants.
+                  </p>
+                </td>
+<td>
+                  <p>
+                    The data type must model the Copy Constructible and Movable
+                    concepts.
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Linear with respect to the number of descendants of <code class="computeroutput"><span class="identifier">const_node</span></code>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Right child creation
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">node</span><span class="special">.</span><span class="identifier">emplace_right</span><span class="special">(</span>
+    boost::forward<span class="special"><</span><span class="identifier">Args</span><span class="special">>(</span><span class="identifier">args</span><span class="special">)...</span>
+<span class="special">)</span>
+</pre>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">Node</span><span class="special">::</span><span class="identifier">iterator</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Creates and returns a tree node to be stored as the right child
+                    of the invoking node. The node returned will initialize its data
+                    with the specified arguments.
+                  </p>
+                  <p>
+                    If a right child existed previously, that node shall become the
+                    right child of the new node.
+                  </p>
+                </td>
+<td>
+                </td>
+<td>
+                  <p>
+                    Amortized constant
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Right child copy creation
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">node</span><span class="special">.</span><span class="identifier">insert_right</span><span class="special">(</span><span class="identifier">const_node</span><span class="special">)</span>
+</pre>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">Node</span><span class="special">::</span><span class="identifier">iterator</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Creates and returns a deep copy of <code class="computeroutput"><span class="identifier">const_node</span></code>
+                    to be stored as the right child of the invoking node.
+                  </p>
+                  <p>
+                    If a right child existed previously, that node shall become the
+                    right-most descendant of the new node, or the last node encountered
+                    during a forward in-order traversal of the new node's descendants.
+                  </p>
+                </td>
+<td>
+                  <p>
+                    The data type must model the Copy Constructible and Movable
+                    concepts.
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Linear with respect to the number of descendants of <code class="computeroutput"><span class="identifier">const_node</span></code>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Left child read-only access
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">const_node</span><span class="special">.</span><span class="identifier">get_left_child_ptr</span><span class="special">()</span>
+</pre>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">Node</span><span class="special">::</span><span class="identifier">const_pointer</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Returns the left child of the tree node, or a null pointer if
+                    no such tree node exists.
+                  </p>
+                </td>
+<td>
+                </td>
+<td>
+                  <p>
+                    Amortized constant
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Left child access
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">node</span><span class="special">.</span><span class="identifier">get_left_child_ptr</span><span class="special">()</span>
+</pre>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">Node</span><span class="special">::</span><span class="identifier">pointer</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Returns the left child of the tree node, or a null pointer if
+                    no such tree node exists.
+                  </p>
+                </td>
+<td>
+                </td>
+<td>
+                  <p>
+                    Amortized constant
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Right child read-only access
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">const_node</span><span class="special">.</span><span class="identifier">get_right_child_ptr</span><span class="special">()</span>
+</pre>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">Node</span><span class="special">::</span><span class="identifier">const_pointer</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Returns the right child of the tree node, or a null pointer if
+                    no such tree node exists.
+                  </p>
+                </td>
+<td>
+                </td>
+<td>
+                  <p>
+                    Amortized constant
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Right child access
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">node</span><span class="special">.</span><span class="identifier">get_right_child_ptr</span><span class="special">()</span>
+</pre>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">Node</span><span class="special">::</span><span class="identifier">pointer</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Returns the right child of the tree node, or a null pointer if
+                    no such tree node exists.
+                  </p>
+                </td>
+<td>
+                </td>
+<td>
+                  <p>
+                    Amortized constant
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Rotate left
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">node</span><span class="special">.</span><span class="identifier">rotate_left</span><span class="special">()</span>
+</pre>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">Node</span><span class="special">::</span><span class="identifier">pointer</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Rotates the tree node in its hierarchy so that its right child,
+                    the pivot node, becomes its parent. The left child of the pivot
+                    node becomes the right child of the tree node. Returns the pivot
+                    node.
+                  </p>
+                </td>
+<td>
+                </td>
+<td>
+                  <p>
+                    Amortized constant
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Rotate right
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">node</span><span class="special">.</span><span class="identifier">rotate_right</span><span class="special">()</span>
+</pre>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">Node</span><span class="special">::</span><span class="identifier">pointer</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Rotates the tree node in its hierarchy so that its left child,
+                    the pivot node, becomes its parent. The right child of the pivot
+                    node becomes the left child of the tree node. Returns the pivot
+                    node.
+                  </p>
+                </td>
+<td>
+                </td>
+<td>
+                  <p>
+                    Amortized constant
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Remove left child
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">node</span><span class="special">.</span><span class="identifier">erase_left</span><span class="special">()</span>
+</pre>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">void</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Removes the left child from the tree node.
+                  </p>
+                </td>
+<td>
+                </td>
+<td>
+                  <p>
+                    Linear with respect to the number of descendants of the left
+                    child
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Remove right child
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">node</span><span class="special">.</span><span class="identifier">erase_right</span><span class="special">()</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">void</span> </code>`
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Removes the right child from the tree node.
+                  </p>
+                </td>
+<td>
+                </td>
+<td>
+                  <p>
+                    Linear with respect to the number of descendants of the right
+                    child
+                  </p>
+                </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.concepts.binary_tree_node.models"></a><a class="link" href="binary_tree_node.html#tree_node.concepts.binary_tree_node.models" title="Models">Models</a>
+</h4></div></div></div>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem"><p>
+              <a class="link" href="../reference/binary_node.html" title="binary_node<T,Size,AllocatorSelector>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">binary_node</span></code></a>
+            </p></li>
+<li class="listitem"><p>
+              <a class="link" href="../reference/binary_node_base.html" title="binary_node_base<Derived,T,Selector>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">binary_node_base</span></code></a>
+            </p></li>
+</ul></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-2013 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="non_assoc_tree_node.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../concepts.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="nary_tree_node.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/tree_node/libs/tree_node/doc/html/tree_node/concepts/copyable_tree_node.html
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ sandbox/tree_node/libs/tree_node/doc/html/tree_node/concepts/copyable_tree_node.html	2013-07-07 14:52:52 EDT (Sun, 07 Jul 2013)	(r84977)
@@ -0,0 +1,272 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Copyable Tree Node</title>
+<link rel="stylesheet" href="http://www.boost.org/doc/libs/release/doc/src/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.77.1">
+<link rel="home" href="../../index.html" title="Chapter 1. tree_node 0.5">
+<link rel="up" href="../concepts.html" title="Concepts">
+<link rel="prev" href="tree_node.html" title="Tree Node">
+<link rel="next" href="movable_tree_node.html" title="Movable Tree 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="tree_node.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../concepts.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="movable_tree_node.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="tree_node.concepts.copyable_tree_node"></a><a class="link" href="copyable_tree_node.html" title="Copyable Tree Node">Copyable Tree
+      Node</a>
+</h3></div></div></div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.concepts.copyable_tree_node.description"></a><a class="link" href="copyable_tree_node.html#tree_node.concepts.copyable_tree_node.description" title="Description">Description</a>
+</h4></div></div></div>
+<p>
+          Models of this concept are meant for external usage by applications or
+          by other data structures.
+        </p>
+<p>
+          In practice, each <span class="bold"><strong>Copyable Tree Node</strong></span> model
+          must do the following:
+        </p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem"><p>
+              Inherit from the corresponding <a class="link" href="base_tree_node.html" title="Base Tree Node"><span class="bold"><strong>Base Tree Node</strong></span></a> model.
+            </p></li>
+<li class="listitem"><p>
+              Take in the data type as template parameters.
+            </p></li>
+<li class="listitem"><p>
+              Also take in the key type if (possibly) modeling the <a class="link" href="associative_tree_node.html" title="Associative Tree Node"><span class="bold"><strong>Associative Tree Node</strong></span></a> concept.
+            </p></li>
+<li class="listitem"><p>
+              Use the <a class="link" href="../reference/copyable_and_movable.html" title="BOOST_TREE_NODE_COPYABLE_AND_MOVABLE"><code class="computeroutput"><span class="identifier">BOOST_TREE_NODE_COPYABLE_AND_MOVABLE</span></code></a>,
+              <a class="link" href="../reference/emplace_ctor_inline_def.html" title="BOOST_TREE_NODE_EMPLACEMENT_CTOR_INLINE_DEF"><code class="computeroutput"><span class="identifier">BOOST_TREE_NODE_EMPLACEMENT_CTOR_INLINE_DEF</span></code></a>,
+              and <a class="link" href="../reference/emplace_ctor_w_alloc_i_def.html" title="BOOST_TREE_NODE_EMPLACEMENT_CTOR_W_ALLOC_INLINE_DEF"><code class="computeroutput"><span class="identifier">BOOST_TREE_NODE_EMPLACEMENT_CTOR_W_ALLOC_INLINE_DEF</span></code></a>
+              macros to support C++03 compilers.
+            </p></li>
+</ul></div>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.concepts.copyable_tree_node.refinement_of"></a><a class="link" href="copyable_tree_node.html#tree_node.concepts.copyable_tree_node.refinement_of" title="Refinement of">Refinement
+        of</a>
+</h4></div></div></div>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem"><p>
+              <a class="link" href="tree_node.html" title="Tree Node"><span class="bold"><strong>Tree
+              Node</strong></span></a>
+            </p></li>
+<li class="listitem"><p>
+              <a href="http://www.boost.org/libs/utility/CopyConstructible.html" target="_top"><span class="bold"><strong>Copy
+              Constructible</strong></span></a>
+            </p></li>
+</ul></div>
+</div>
+<div class="variablelist">
+<p class="title"><b>Notation</b></p>
+<dl class="variablelist">
+<dt><span class="term"><code class="computeroutput"><span class="identifier">Node</span></code></span></dt>
+<dd><p>
+              A type that models the <span class="bold"><strong>Copyable Tree Node</strong></span>
+              concept.
+            </p></dd>
+<dt><span class="term"><code class="computeroutput"><span class="identifier">node</span></code></span></dt>
+<dd><p>
+              An object of type <code class="computeroutput"><span class="identifier">Node</span><span class="special">&</span></code>.
+            </p></dd>
+<dt><span class="term"><code class="computeroutput"><span class="identifier">const_node</span></code></span></dt>
+<dd><p>
+              An object of type <code class="computeroutput"><span class="identifier">Node</span> <span class="keyword">const</span><span class="special">&</span></code>.
+            </p></dd>
+<dt><span class="term"><code class="computeroutput"><span class="identifier">alloc</span></code></span></dt>
+<dd><p>
+              An object of type <code class="computeroutput"><span class="identifier">Node</span><span class="special">::</span><span class="identifier">traits</span><span class="special">::</span><span class="identifier">allocator_reference</span></code>.
+            </p></dd>
+</dl>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.concepts.copyable_tree_node.types"></a><a class="link" href="copyable_tree_node.html#tree_node.concepts.copyable_tree_node.types" title="Associated Types">Associated
+        Types</a>
+</h4></div></div></div>
+<p>
+          No additional types beyond those defined in the <a class="link" href="tree_node.html" title="Tree Node"><span class="bold"><strong>Tree Node</strong></span></a> and Copy Constructible concepts.
+        </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.concepts.copyable_tree_node.expressions"></a><a class="link" href="copyable_tree_node.html#tree_node.concepts.copyable_tree_node.expressions" title="Valid Expressions and Semantics">Valid
+        Expressions and Semantics</a>
+</h4></div></div></div>
+<p>
+          In addition to the expressions defined in the <a class="link" href="tree_node.html" title="Tree Node"><span class="bold"><strong>Tree Node</strong></span></a> and Copy Constructible concepts, the following
+          expressions must be valid.
+        </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+                  <p>
+                    Name
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Expression
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Return Type
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Semantics
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Type requirements
+                  </p>
+                </th>
+<th>
+                  <p>
+                    <a href="http://en.wikipedia.org/wiki/Amortized_analysis" target="_top">Runtime
+                    Complexity</a>
+                  </p>
+                </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+                  <p>
+                    Copy constructor
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">Node</span><span class="special">(</span><span class="identifier">const_node</span><span class="special">)</span>
+</pre>
+                </td>
+<td>
+                </td>
+<td>
+                  <p>
+                    Constructs a deep copy of the specified node.
+                  </p>
+                </td>
+<td>
+                  <p>
+                    The data type must be Copy Constructible, the boost::container::allocator_traits
+                    static method <code class="computeroutput"><span class="identifier">select_on_container_copy_construction</span></code>
+                    must be callable when passed in the allocator of the specified
+                    node, and the allocator reference type must be <code class="computeroutput"><span class="identifier">Node</span><span class="special">::</span><span class="identifier">traits</span><span class="special">::</span><span class="identifier">allocator</span> <span class="keyword">const</span><span class="special">&</span></code>.
+                  </p>
+                </td>
+<td>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Copy constructor with allocator
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">Node</span><span class="special">(</span>
+    <span class="identifier">boost</span><span class="special">::</span><span class="identifier">container</span><span class="special">::</span><span class="identifier">allocator_arg</span>
+  <span class="special">,</span> <span class="identifier">alloc</span>
+  <span class="special">,</span> <span class="identifier">const_node</span>
+<span class="special">)</span>
+</pre>
+                </td>
+<td>
+                </td>
+<td>
+                  <p>
+                    Constructs a deep copy of the specified node. The new node will
+                    use the specified allocator (if the allocator reference type
+                    is mutable) or a copy of it (if the allocator reference type
+                    is to <code class="computeroutput"><span class="keyword">const</span></code>) to
+                    construct its own parent node or its own child nodes if and when
+                    invoking its respective creation methods.
+                  </p>
+                </td>
+<td>
+                  <p>
+                    The data type must be Copy Constructible.
+                  </p>
+                </td>
+<td>
+                </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.concepts.copyable_tree_node.models"></a><a class="link" href="copyable_tree_node.html#tree_node.concepts.copyable_tree_node.models" title="Models">Models</a>
+</h4></div></div></div>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem"><p>
+              <a class="link" href="../reference/binary_node.html" title="binary_node<T,Size,AllocatorSelector>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">binary_node</span></code></a>
+              if <code class="computeroutput"><span class="identifier">T</span></code> is Copy Constructible
+            </p></li>
+<li class="listitem"><p>
+              <a class="link" href="../reference/nary_node.html" title="nary_node<T,Selector>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">nary_node</span></code></a>
+              if <code class="computeroutput"><span class="identifier">T</span></code> is Copy Constructible
+            </p></li>
+<li class="listitem"><p>
+              <a class="link" href="../reference/associative_node.html" title="associative_node<Key,Data,Selector>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">associative_node</span></code></a> if <code class="computeroutput"><span class="identifier">Data</span></code> is Copy Constructible
+            </p></li>
+<li class="listitem"><p>
+              <a class="link" href="../reference/with_accumulation.html" title="with_accumulation<BaseGenerator,T1,T2,AccumulationKey>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">with_accumulation</span></code></a> if <code class="computeroutput"><span class="identifier">BaseGenerator</span></code> returns a <span class="bold"><strong>Copyable Tree Node</strong></span> model
+            </p></li>
+<li class="listitem"><p>
+              <a class="link" href="../reference/with_count.html" title="with_count<BaseGenerator,T1,T2,Count>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">with_count</span></code></a>
+              if <code class="computeroutput"><span class="identifier">BaseGenerator</span></code> returns
+              a <span class="bold"><strong>Copyable Tree Node</strong></span> model
+            </p></li>
+<li class="listitem"><p>
+              <a class="link" href="../reference/with_height.html" title="with_height<BaseGenerator,T1,T2,Height>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">with_height</span></code></a>
+              if <code class="computeroutput"><span class="identifier">BaseGenerator</span></code> returns
+              a <span class="bold"><strong>Copyable Tree Node</strong></span> model
+            </p></li>
+<li class="listitem"><p>
+              <a class="link" href="../reference/with_position.html" title="with_position<BaseGenerator,T1,T2>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">with_position</span></code></a>
+              if <code class="computeroutput"><span class="identifier">BaseGenerator</span></code> returns
+              a <span class="bold"><strong>Copyable Tree Node</strong></span> model
+            </p></li>
+<li class="listitem"><p>
+              <a class="link" href="../reference/with_rb_flag.html" title="with_red_black_flag<BaseGenerator,T1,T2>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">with_red_black_flag</span></code></a>
+              if <code class="computeroutput"><span class="identifier">BaseGenerator</span></code> returns
+              a <span class="bold"><strong>Copyable Tree Node</strong></span> model
+            </p></li>
+</ul></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-2013 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="tree_node.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../concepts.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="movable_tree_node.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/tree_node/libs/tree_node/doc/html/tree_node/concepts/full_tree_node_iterator.html
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ sandbox/tree_node/libs/tree_node/doc/html/tree_node/concepts/full_tree_node_iterator.html	2013-07-07 14:52:52 EDT (Sun, 07 Jul 2013)	(r84977)
@@ -0,0 +1,172 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Full Tree Node Iterator</title>
+<link rel="stylesheet" href="http://www.boost.org/doc/libs/release/doc/src/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.77.1">
+<link rel="home" href="../../index.html" title="Chapter 1. tree_node 0.5">
+<link rel="up" href="../concepts.html" title="Concepts">
+<link rel="prev" href="tree_node_iterator.html" title="Tree Node Iterator">
+<link rel="next" href="tree_node_desc_iterator.html" title="Tree Node Descendant 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="tree_node_iterator.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../concepts.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="tree_node_desc_iterator.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="tree_node.concepts.full_tree_node_iterator"></a><a class="link" href="full_tree_node_iterator.html" title="Full Tree Node Iterator">Full Tree
+      Node Iterator</a>
+</h3></div></div></div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.concepts.full_tree_node_iterator.description"></a><a class="link" href="full_tree_node_iterator.html#tree_node.concepts.full_tree_node_iterator.description" title="Description">Description</a>
+</h4></div></div></div>
+<p>
+          This concept specifies the requirement that models traverse the root node
+          as well as its descendants.
+        </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.concepts.full_tree_node_iterator.refinement_of"></a><a class="link" href="full_tree_node_iterator.html#tree_node.concepts.full_tree_node_iterator.refinement_of" title="Refinement of">Refinement
+        of</a>
+</h4></div></div></div>
+<p>
+          <a class="link" href="tree_node_iterator.html" title="Tree Node Iterator"><span class="bold"><strong>Tree
+          Node Iterator</strong></span></a>
+        </p>
+</div>
+<div class="variablelist">
+<p class="title"><b>Notation</b></p>
+<dl class="variablelist">
+<dt><span class="term"><code class="computeroutput"><span class="identifier">Iterator</span></code></span></dt>
+<dd><p>
+              A type that models the <span class="bold"><strong>Full Tree Node Iterator</strong></span>
+              concept.
+            </p></dd>
+<dt><span class="term"><code class="computeroutput"><span class="identifier">itr</span></code></span></dt>
+<dd><p>
+              An object of type <code class="computeroutput"><span class="identifier">Iterator</span></code>.
+            </p></dd>
+<dt><span class="term"><code class="computeroutput"><span class="identifier">Node</span></code></span></dt>
+<dd><p>
+              The value type of <code class="computeroutput"><span class="identifier">Iterator</span></code>.
+            </p></dd>
+<dt><span class="term"><code class="computeroutput"><span class="identifier">node</span></code></span></dt>
+<dd><p>
+              An object of type <code class="computeroutput"><span class="identifier">Node</span><span class="special">&</span></code>.
+            </p></dd>
+</dl>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.concepts.full_tree_node_iterator.types"></a><a class="link" href="full_tree_node_iterator.html#tree_node.concepts.full_tree_node_iterator.types" title="Associated Types">Associated
+        Types</a>
+</h4></div></div></div>
+<p>
+          No additional types beyond those defined in the <a class="link" href="tree_node_iterator.html" title="Tree Node Iterator"><span class="bold"><strong>Tree Node Iterator</strong></span></a> concept; however, the
+          requirements for the value type are strengthened: it must model the <a class="link" href="tree_node.html" title="Tree Node"><span class="bold"><strong>Tree Node</strong></span></a>
+          concept.
+        </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.concepts.full_tree_node_iterator.expressions"></a><a class="link" href="full_tree_node_iterator.html#tree_node.concepts.full_tree_node_iterator.expressions" title="Valid Expressions and Semantics">Valid
+        Expressions and Semantics</a>
+</h4></div></div></div>
+<p>
+          None beyond those defined in the <a class="link" href="tree_node_iterator.html" title="Tree Node Iterator"><span class="bold"><strong>Tree Node Iterator</strong></span></a> concept; however, the
+          type requirements for the constructors are strengthened, and their semantics
+          are clarified.
+        </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+                  <p>
+                    Name
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Expression
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Type requirements
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Semantics
+                  </p>
+                </th>
+</tr></thead>
+<tbody><tr>
+<td>
+                  <p>
+                    Constructor from node
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">Iterator</span><span class="special">(</span><span class="identifier">node</span><span class="special">)</span>
+<span class="identifier">Iterator</span> <span class="identifier">itr</span><span class="special">(</span><span class="identifier">node</span><span class="special">)</span>
+</pre>
+                </td>
+<td>
+                </td>
+<td>
+                  <p>
+                    Constructs an iterator that will iterate through the specified
+                    node and its descendants.
+                  </p>
+                </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.concepts.full_tree_node_iterator.models"></a><a class="link" href="full_tree_node_iterator.html#tree_node.concepts.full_tree_node_iterator.models" title="Models">Models</a>
+</h4></div></div></div>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem"><p>
+              <a class="link" href="../reference/breadth_first_iterator.html" title="breadth_first_iterator<Node,Selector>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">breadth_first_iterator</span></code></a>
+            </p></li>
+<li class="listitem"><p>
+              <a class="link" href="../reference/pre_order_iterator.html" title="pre_order_iterator<Node,IsReverse>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">pre_order_iterator</span></code></a>
+            </p></li>
+<li class="listitem"><p>
+              <a class="link" href="../reference/post_order_iterator.html" title="post_order_iterator<Node,IsReverse>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">post_order_iterator</span></code></a>
+            </p></li>
+<li class="listitem"><p>
+              <a class="link" href="../reference/in_order_iterator.html" title="in_order_iterator<Node,IsReverse>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">in_order_iterator</span></code></a>
+            </p></li>
+<li class="listitem"><p>
+              <a class="link" href="../reference/depth_first_iterator.html" title="depth_first_iterator<Node,IsReverse>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">depth_first_iterator</span></code></a>
+            </p></li>
+</ul></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-2013 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="tree_node_iterator.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../concepts.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="tree_node_desc_iterator.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/tree_node/libs/tree_node/doc/html/tree_node/concepts/indexable_container.html
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ sandbox/tree_node/libs/tree_node/doc/html/tree_node/concepts/indexable_container.html	2013-07-07 14:52:52 EDT (Sun, 07 Jul 2013)	(r84977)
@@ -0,0 +1,222 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Indexable Container</title>
+<link rel="stylesheet" href="http://www.boost.org/doc/libs/release/doc/src/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.77.1">
+<link rel="home" href="../../index.html" title="Chapter 1. tree_node 0.5">
+<link rel="up" href="../concepts.html" title="Concepts">
+<link rel="prev" href="tree_node_desc_iterator.html" title="Tree Node Descendant Iterator">
+<link rel="next" href="indexable_iterator.html" title="Indexable 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="tree_node_desc_iterator.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../concepts.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="indexable_iterator.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="tree_node.concepts.indexable_container"></a><a class="link" href="indexable_container.html" title="Indexable Container">Indexable Container</a>
+</h3></div></div></div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.concepts.indexable_container.description"></a><a class="link" href="indexable_container.html#tree_node.concepts.indexable_container.description" title="Description">Description</a>
+</h4></div></div></div>
+<p>
+          An <span class="bold"><strong>Indexable Container</strong></span> is a Reversible Container whose iterator type
+          is an <a class="link" href="indexable_iterator.html" title="Indexable Iterator"><span class="bold"><strong>Indexable
+          Iterator</strong></span></a>. It provides sub-linear time access to arbitrary
+          elements.
+        </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.concepts.indexable_container.refinement_of"></a><a class="link" href="indexable_container.html#tree_node.concepts.indexable_container.refinement_of" title="Refinement of">Refinement
+        of</a>
+</h4></div></div></div>
+<p>
+          Reversible Container
+        </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.concepts.indexable_container.types"></a><a class="link" href="indexable_container.html#tree_node.concepts.indexable_container.types" title="Associated Types">Associated
+        Types</a>
+</h4></div></div></div>
+<p>
+          None beyond those defined in Reversible Container. However, the requirements
+          for the iterator type are strengthened: it must be an <a class="link" href="indexable_iterator.html" title="Indexable Iterator"><span class="bold"><strong>Indexable Iterator</strong></span></a>.
+        </p>
+</div>
+<div class="variablelist">
+<p class="title"><b>Notation</b></p>
+<dl class="variablelist">
+<dt><span class="term"><code class="computeroutput"><span class="identifier">X</span></code></span></dt>
+<dd><p>
+              A type that models the <span class="bold"><strong>Indexable Container</strong></span>
+              concept.
+            </p></dd>
+<dt><span class="term"><code class="computeroutput"><span class="identifier">a</span></code></span></dt>
+<dd><p>
+              An object of type <code class="computeroutput"><span class="identifier">X</span></code>.
+            </p></dd>
+</dl>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.concepts.indexable_container.expressions"></a><a class="link" href="indexable_container.html#tree_node.concepts.indexable_container.expressions" title="Valid Expressions and Semantics">Valid
+        Expressions and Semantics</a>
+</h4></div></div></div>
+<p>
+          In addition to the expressions defined in the Reversible Container concept, the following
+          expressions must be valid.
+        </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+<col>
+<col>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+                  <p>
+                    Name
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Expression
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Return Type
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Semantics
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Type Requirements
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Precondition
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Invariant
+                  </p>
+                </th>
+<th>
+                  <p>
+                    <a href="http://en.wikipedia.org/wiki/Amortized_analysis" target="_top">Runtime
+                    Complexity</a>
+                  </p>
+                </th>
+</tr></thead>
+<tbody><tr>
+<td>
+                  <p>
+                    Element access
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">a</span><span class="special">[</span><span class="identifier">n</span><span class="special">]</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">reference</span></code> if
+                    <code class="computeroutput"><span class="identifier">a</span></code> is mutable,
+                    <code class="computeroutput"><span class="identifier">const_reference</span></code>
+                    otherwise
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Returns the <code class="computeroutput"><span class="identifier">n</span></code>th
+                    element from the beginning of the container.
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">n</span></code> must be convertible
+                    to <code class="computeroutput"><span class="identifier">size_type</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="number">0</span> <span class="special"><</span>
+                    <span class="identifier">n</span> <span class="special"><=</span>
+                    <span class="identifier">a</span><span class="special">.</span><span class="identifier">size</span><span class="special">()</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Equivalent to <code class="computeroutput"><span class="special">*(</span><span class="identifier">a</span><span class="special">.</span><span class="identifier">begin</span><span class="special">()</span>
+                    <span class="special">+</span> <span class="identifier">n</span><span class="special">)</span></code>.
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Sublinear
+                  </p>
+                </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.concepts.indexable_container.models"></a><a class="link" href="indexable_container.html#tree_node.concepts.indexable_container.models" title="Models">Models</a>
+</h4></div></div></div>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem"><p>
+              <a class="link" href="../reference/binode_container.html" title="binode_container<NodeGenerator,T,Balancer>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">binode_container</span></code></a> if the value
+              associated with <a class="link" href="../reference/count_key.html" title="count_key"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">count_key</span></code></a> exists for the return
+              type of <code class="computeroutput"><span class="identifier">NodeGenerator</span></code>
+            </p></li>
+<li class="listitem"><p>
+              <a class="link" href="../reference/binode_assoc_container.html" title="binode_associative_container< NodeGenerator , T1 , T2 , IsMultipleAssociative , CompareSelector , Balancer >"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">binode_associative_container</span></code></a>
+            </p></li>
+<li class="listitem"><p>
+              <a class="link" href="../reference/binode_set.html" title="binode_set<NodeGenerator,T,CompareSelector,Balancer>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">binode_set</span></code></a>
+            </p></li>
+<li class="listitem"><p>
+              <a class="link" href="../reference/binode_map.html" title="binode_map<NodeGenerator,Key,Mapped,CompareSelector,Balancer>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">binode_map</span></code></a>
+            </p></li>
+<li class="listitem"><p>
+              <a class="link" href="../reference/binode_multiset.html" title="binode_multiset<NodeGenerator,T,CompareSelector,Balancer>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">binode_multiset</span></code></a>
+            </p></li>
+<li class="listitem"><p>
+              <a class="link" href="../reference/binode_multimap.html" title="binode_multimap<NodeGenerator,Key,Mapped,CompareSelector,Balancer>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">binode_multimap</span></code></a>
+            </p></li>
+</ul></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-2013 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="tree_node_desc_iterator.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../concepts.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="indexable_iterator.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/tree_node/libs/tree_node/doc/html/tree_node/concepts/indexable_iterator.html
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ sandbox/tree_node/libs/tree_node/doc/html/tree_node/concepts/indexable_iterator.html	2013-07-07 14:52:52 EDT (Sun, 07 Jul 2013)	(r84977)
@@ -0,0 +1,509 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Indexable Iterator</title>
+<link rel="stylesheet" href="http://www.boost.org/doc/libs/release/doc/src/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.77.1">
+<link rel="home" href="../../index.html" title="Chapter 1. tree_node 0.5">
+<link rel="up" href="../concepts.html" title="Concepts">
+<link rel="prev" href="indexable_container.html" title="Indexable Container">
+<link rel="next" href="../reference.html" title="Reference">
+</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="indexable_container.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../concepts.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../reference.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="tree_node.concepts.indexable_iterator"></a><a class="link" href="indexable_iterator.html" title="Indexable Iterator">Indexable Iterator</a>
+</h3></div></div></div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.concepts.indexable_iterator.description"></a><a class="link" href="indexable_iterator.html#tree_node.concepts.indexable_iterator.description" title="Description">Description</a>
+</h4></div></div></div>
+<p>
+          An <span class="bold"><strong>Indexable Iterator</strong></span> is an iterator that
+          provides both increment and decrement as well as sublinear-time operators
+          for moving forward and backward in arbitrary-sized steps. The runtime complexity
+          requirement is the only major difference between an <span class="bold"><strong>Indexable
+          Iterator</strong></span> and a Random Access Iterator.
+        </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.concepts.indexable_iterator.refinement_of"></a><a class="link" href="indexable_iterator.html#tree_node.concepts.indexable_iterator.refinement_of" title="Refinement of">Refinement
+        of</a>
+</h4></div></div></div>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem"><p>
+              Bidirectional Iterator
+            </p></li>
+<li class="listitem"><p>
+              Less-Than Comparable
+            </p></li>
+</ul></div>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.concepts.indexable_iterator.types"></a><a class="link" href="indexable_iterator.html#tree_node.concepts.indexable_iterator.types" title="Associated Types">Associated
+        Types</a>
+</h4></div></div></div>
+<p>
+          No additional types beyond those defined in the Bidirectional Iterator and Less-Than Comparable concepts.
+        </p>
+</div>
+<div class="variablelist">
+<p class="title"><b>Notation</b></p>
+<dl class="variablelist">
+<dt><span class="term"><code class="computeroutput"><span class="identifier">Iterator</span></code></span></dt>
+<dd><p>
+              A type that models the <span class="bold"><strong>Indexable Iterator</strong></span>
+              concept.
+            </p></dd>
+<dt><span class="term"><code class="computeroutput"><span class="identifier">i</span></code>, <code class="computeroutput"><span class="identifier">j</span></code></span></dt>
+<dd><p>
+              Objects of type <code class="computeroutput"><span class="identifier">Iterator</span></code>.
+            </p></dd>
+<dt><span class="term"><code class="computeroutput"><span class="identifier">T</span></code></span></dt>
+<dd><p>
+              The value type of <code class="computeroutput"><span class="identifier">Iterator</span></code>.
+            </p></dd>
+<dt><span class="term"><code class="computeroutput"><span class="identifier">t</span></code></span></dt>
+<dd><p>
+              An object of type <code class="computeroutput"><span class="identifier">T</span></code>.
+            </p></dd>
+<dt><span class="term"><code class="computeroutput"><span class="identifier">Distance</span></code></span></dt>
+<dd><p>
+              The distance type of <code class="computeroutput"><span class="identifier">Iterator</span></code>.
+            </p></dd>
+<dt><span class="term"><code class="computeroutput"><span class="identifier">n</span></code></span></dt>
+<dd><p>
+              An object of type <code class="computeroutput"><span class="identifier">Distance</span></code>.
+            </p></dd>
+</dl>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.concepts.indexable_iterator.expressions"></a><a class="link" href="indexable_iterator.html#tree_node.concepts.indexable_iterator.expressions" title="Valid Expressions and Semantics">Valid
+        Expressions and Semantics</a>
+</h4></div></div></div>
+<p>
+          In addition to the expressions defined in the Bidirectional Iterator concept, the following
+          expressions must be valid.
+        </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+<col>
+<col>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+                  <p>
+                    Name
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Expression
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Return Type
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Semantics
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Type Requirements
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Precondition
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Postcondition
+                  </p>
+                </th>
+<th>
+                  <p>
+                    <a href="http://en.wikipedia.org/wiki/Amortized_analysis" target="_top">Runtime
+                    Complexity</a>
+                  </p>
+                </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+                  <p>
+                    Iterator addition assignment
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">i</span> <span class="special">+=</span>
+                    <span class="identifier">n</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">X</span><span class="special">&</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    If <code class="computeroutput"><span class="identifier">n</span> <span class="special">></span>
+                    <span class="number">0</span></code>, equivalent to executing
+                    <code class="computeroutput"><span class="special">++</span><span class="identifier">i</span></code>
+                    <code class="computeroutput"><span class="identifier">n</span></code> times. If
+                    <code class="computeroutput"><span class="identifier">n</span> <span class="special"><</span>
+                    <span class="number">0</span></code>, equivalent to executing
+                    <code class="computeroutput"><span class="special">--</span><span class="identifier">i</span></code>
+                    <code class="computeroutput"><span class="identifier">n</span></code> times. If
+                    <code class="computeroutput"><span class="identifier">n</span> <span class="special">==</span>
+                    <span class="number">0</span></code>, this is a null operation.
+                  </p>
+                </td>
+<td>
+                </td>
+<td>
+                  <p>
+                    Including <code class="computeroutput"><span class="identifier">i</span></code> itself,
+                    there must be <code class="computeroutput"><span class="identifier">n</span></code>
+                    dereferenceable or past-the-end iterators following or preceding
+                    <code class="computeroutput"><span class="identifier">i</span></code>, depending
+                    on whether <code class="computeroutput"><span class="identifier">n</span></code>
+                    is positive or negative.
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">i</span></code> is dereferenceable
+                    or past-the-end.
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Sublinear
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Iterator addition
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">i</span> <span class="special">+</span>
+                    <span class="identifier">n</span></code> or <code class="computeroutput"><span class="identifier">n</span> <span class="special">+</span>
+                    <span class="identifier">i</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">X</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Equivalent to <code class="computeroutput"><span class="special">{</span> <span class="identifier">X</span> <span class="identifier">tmp</span>
+                    <span class="special">=</span> <span class="identifier">i</span><span class="special">;</span> <span class="keyword">return</span>
+                    <span class="identifier">tmp</span> <span class="special">+=</span>
+                    <span class="identifier">n</span><span class="special">;</span>
+                    <span class="special">}</span></code>. The two forms <code class="computeroutput"><span class="identifier">i</span> <span class="special">+</span>
+                    <span class="identifier">n</span></code> and <code class="computeroutput"><span class="identifier">n</span> <span class="special">+</span>
+                    <span class="identifier">i</span></code> are identical.
+                  </p>
+                </td>
+<td>
+                </td>
+<td>
+                  <p>
+                    Same as for <code class="computeroutput"><span class="identifier">i</span> <span class="special">+=</span> <span class="identifier">n</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    The result is dereferenceable or past-the-end.
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Sublinear
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Iterator subtraction assignment
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">i</span> <span class="special">-=</span>
+                    <span class="identifier">n</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">X</span><span class="special">&</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Equivalent to <code class="computeroutput"><span class="identifier">i</span> <span class="special">+=</span> <span class="special">(-</span><span class="identifier">n</span><span class="special">)</span></code>.
+                  </p>
+                </td>
+<td>
+                </td>
+<td>
+                  <p>
+                    Including <code class="computeroutput"><span class="identifier">i</span></code> itself,
+                    there must be <code class="computeroutput"><span class="identifier">n</span></code>
+                    dereferenceable or past-the-end iterators preceding or following
+                    <code class="computeroutput"><span class="identifier">i</span></code>, depending
+                    on whether <code class="computeroutput"><span class="identifier">n</span></code>
+                    is positive or negative.
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">i</span></code> is dereferenceable
+                    or past-the-end.
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Sublinear
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Iterator subtraction
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">i</span> <span class="special">-</span>
+                    <span class="identifier">n</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">X</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Equivalent to <code class="computeroutput"><span class="special">{</span> <span class="identifier">X</span> <span class="identifier">tmp</span>
+                    <span class="special">=</span> <span class="identifier">i</span><span class="special">;</span> <span class="keyword">return</span>
+                    <span class="identifier">tmp</span> <span class="special">-=</span>
+                    <span class="identifier">n</span><span class="special">;</span>
+                    <span class="special">}</span></code>.
+                  </p>
+                </td>
+<td>
+                </td>
+<td>
+                  <p>
+                    Same as for <code class="computeroutput"><span class="identifier">i</span> <span class="special">-=</span> <span class="identifier">n</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    The result is dereferenceable or past-the-end.
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Sublinear
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Difference
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">i</span> <span class="special">-</span>
+                    <span class="identifier">j</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">Distance</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Returns a number <code class="computeroutput"><span class="identifier">n</span></code>
+                    such that <code class="computeroutput"><span class="identifier">i</span> <span class="special">==</span> <span class="identifier">j</span>
+                    <span class="special">+</span> <span class="identifier">n</span></code>.
+                  </p>
+                </td>
+<td>
+                </td>
+<td>
+                  <p>
+                    Either <code class="computeroutput"><span class="identifier">i</span></code> is reachable
+                    from <code class="computeroutput"><span class="identifier">j</span></code> or <code class="computeroutput"><span class="identifier">j</span></code> is reachable from <code class="computeroutput"><span class="identifier">i</span></code>, or both.
+                  </p>
+                </td>
+<td>
+                </td>
+<td>
+                  <p>
+                    Sublinear
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Element operator
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">i</span><span class="special">[</span><span class="identifier">n</span><span class="special">]</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Convertible to <code class="computeroutput"><span class="identifier">T</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Equivalent to <code class="computeroutput"><span class="special">*(</span><span class="identifier">i</span> <span class="special">+</span>
+                    <span class="identifier">n</span><span class="special">)</span></code>.
+                  </p>
+                </td>
+<td>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">i</span> <span class="special">+</span>
+                    <span class="identifier">n</span></code> exists and is dereferenceable.
+                  </p>
+                </td>
+<td>
+                </td>
+<td>
+                  <p>
+                    Sublinear
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Element assignment
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">i</span><span class="special">[</span><span class="identifier">n</span><span class="special">]</span>
+                    <span class="special">=</span> <span class="identifier">t</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Convertible to <code class="computeroutput"><span class="identifier">T</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Equivalent to <code class="computeroutput"><span class="special">*(</span><span class="identifier">i</span> <span class="special">+</span>
+                    <span class="identifier">n</span><span class="special">)</span></code>.
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">X</span></code> is mutable.
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">i</span> <span class="special">+</span>
+                    <span class="identifier">n</span></code> exists and is dereferenceable.
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">i</span><span class="special">[</span><span class="identifier">n</span><span class="special">]</span></code>
+                    is a copy of <code class="computeroutput"><span class="identifier">t</span></code>.
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Sublinear
+                  </p>
+                </td>
+</tr>
+</tbody>
+</table></div>
+<p>
+          In addition, the domain of the less-than comparison expression <code class="computeroutput"><span class="identifier">i</span> <span class="special"><</span> <span class="identifier">j</span></code> is the group of iterators that are
+          reachable from each other: that is, either <code class="computeroutput"><span class="identifier">i</span></code>
+          is reachable from <code class="computeroutput"><span class="identifier">j</span></code> or
+          <code class="computeroutput"><span class="identifier">j</span></code> is reachable from <code class="computeroutput"><span class="identifier">i</span></code>, or both.
+        </p>
+<p>
+          The Forward Iterator and Reverse Iterator requirements that the increment
+          and decrement operators must exhibit constant time complexity have been
+          relaxed; they now need only exhibit linear time complexity with respect
+          to the number of descendants in the worst case.
+        </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.concepts.indexable_iterator.models"></a><a class="link" href="indexable_iterator.html#tree_node.concepts.indexable_iterator.models" title="Models">Models</a>
+</h4></div></div></div>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem"><p>
+              The iterator types of <a class="link" href="../reference/binode_container.html" title="binode_container<NodeGenerator,T,Balancer>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">binode_container</span></code></a>
+            </p></li>
+<li class="listitem"><p>
+              The iterator types of <a class="link" href="../reference/binode_assoc_container.html" title="binode_associative_container< NodeGenerator , T1 , T2 , IsMultipleAssociative , CompareSelector , Balancer >"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">binode_associative_container</span></code></a>
+            </p></li>
+</ul></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-2013 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="indexable_container.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../concepts.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../reference.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/tree_node/libs/tree_node/doc/html/tree_node/concepts/movable_tree_node.html
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ sandbox/tree_node/libs/tree_node/doc/html/tree_node/concepts/movable_tree_node.html	2013-07-07 14:52:52 EDT (Sun, 07 Jul 2013)	(r84977)
@@ -0,0 +1,270 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Movable Tree Node</title>
+<link rel="stylesheet" href="http://www.boost.org/doc/libs/release/doc/src/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.77.1">
+<link rel="home" href="../../index.html" title="Chapter 1. tree_node 0.5">
+<link rel="up" href="../concepts.html" title="Concepts">
+<link rel="prev" href="copyable_tree_node.html" title="Copyable Tree Node">
+<link rel="next" href="base_tree_node.html" title="Base Tree 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="copyable_tree_node.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../concepts.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="base_tree_node.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="tree_node.concepts.movable_tree_node"></a><a class="link" href="movable_tree_node.html" title="Movable Tree Node">Movable Tree Node</a>
+</h3></div></div></div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.concepts.movable_tree_node.description"></a><a class="link" href="movable_tree_node.html#tree_node.concepts.movable_tree_node.description" title="Description">Description</a>
+</h4></div></div></div>
+<p>
+          Models of this concept are meant for external usage by applications or
+          by other data structures.
+        </p>
+<p>
+          In practice, each <span class="bold"><strong>Movable Tree Node</strong></span> model
+          must do the following:
+        </p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem"><p>
+              Inherit from the corresponding <a class="link" href="base_tree_node.html" title="Base Tree Node"><span class="bold"><strong>Base Tree Node</strong></span></a> model.
+            </p></li>
+<li class="listitem"><p>
+              Take in the data type as template parameters.
+            </p></li>
+<li class="listitem"><p>
+              Also take in the key type if (possibly) modeling the <a class="link" href="associative_tree_node.html" title="Associative Tree Node"><span class="bold"><strong>Associative Tree Node</strong></span></a> concept.
+            </p></li>
+<li class="listitem"><p>
+              Use the <a class="link" href="../reference/copyable_and_movable.html" title="BOOST_TREE_NODE_COPYABLE_AND_MOVABLE"><code class="computeroutput"><span class="identifier">BOOST_TREE_NODE_COPYABLE_AND_MOVABLE</span></code></a>,
+              <a class="link" href="../reference/emplace_ctor_inline_def.html" title="BOOST_TREE_NODE_EMPLACEMENT_CTOR_INLINE_DEF"><code class="computeroutput"><span class="identifier">BOOST_TREE_NODE_EMPLACEMENT_CTOR_INLINE_DEF</span></code></a>,
+              and <a class="link" href="../reference/emplace_ctor_w_alloc_i_def.html" title="BOOST_TREE_NODE_EMPLACEMENT_CTOR_W_ALLOC_INLINE_DEF"><code class="computeroutput"><span class="identifier">BOOST_TREE_NODE_EMPLACEMENT_CTOR_W_ALLOC_INLINE_DEF</span></code></a>
+              macros to support C++03 compilers.
+            </p></li>
+</ul></div>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.concepts.movable_tree_node.refinement_of"></a><a class="link" href="movable_tree_node.html#tree_node.concepts.movable_tree_node.refinement_of" title="Refinement of">Refinement
+        of</a>
+</h4></div></div></div>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem"><p>
+              <a class="link" href="tree_node.html" title="Tree Node"><span class="bold"><strong>Tree
+              Node</strong></span></a>
+            </p></li>
+<li class="listitem"><p>
+              Movable
+            </p></li>
+</ul></div>
+</div>
+<div class="variablelist">
+<p class="title"><b>Notation</b></p>
+<dl class="variablelist">
+<dt><span class="term"><code class="computeroutput"><span class="identifier">Node</span></code></span></dt>
+<dd><p>
+              A type that models the <span class="bold"><strong>Movable Tree Node</strong></span>
+              concept.
+            </p></dd>
+<dt><span class="term"><code class="computeroutput"><span class="identifier">node</span></code></span></dt>
+<dd><p>
+              An object of type <code class="computeroutput"><span class="identifier">Node</span><span class="special">&</span></code>.
+            </p></dd>
+<dt><span class="term"><code class="computeroutput"><span class="identifier">rvalue_node</span></code></span></dt>
+<dd><p>
+              An object of type <code class="computeroutput"><span class="identifier">Node</span><span class="special">&&</span></code>.
+            </p></dd>
+<dt><span class="term"><code class="computeroutput"><span class="identifier">alloc</span></code></span></dt>
+<dd><p>
+              An object of type <code class="computeroutput"><span class="identifier">Node</span><span class="special">::</span><span class="identifier">traits</span><span class="special">::</span><span class="identifier">allocator_reference</span></code>.
+            </p></dd>
+</dl>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.concepts.movable_tree_node.types"></a><a class="link" href="movable_tree_node.html#tree_node.concepts.movable_tree_node.types" title="Associated Types">Associated
+        Types</a>
+</h4></div></div></div>
+<p>
+          No additional types beyond those defined in the <a class="link" href="tree_node.html" title="Tree Node"><span class="bold"><strong>Tree Node</strong></span></a> and Movable concepts.
+        </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.concepts.movable_tree_node.expressions"></a><a class="link" href="movable_tree_node.html#tree_node.concepts.movable_tree_node.expressions" title="Valid Expressions and Semantics">Valid
+        Expressions and Semantics</a>
+</h4></div></div></div>
+<p>
+          In addition to the expressions defined in the <a class="link" href="tree_node.html" title="Tree Node"><span class="bold"><strong>Tree Node</strong></span></a> and Movable concepts, the following expressions
+          must be valid.
+        </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+                  <p>
+                    Name
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Expression
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Return Type
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Semantics
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Type requirements
+                  </p>
+                </th>
+<th>
+                  <p>
+                    <a href="http://en.wikipedia.org/wiki/Amortized_analysis" target="_top">Runtime
+                    Complexity</a>
+                  </p>
+                </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+                  <p>
+                    Move constructor
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">Node</span><span class="special">(</span><span class="identifier">rvalue_node</span><span class="special">)</span>
+</pre>
+                </td>
+<td>
+                </td>
+<td>
+                  <p>
+                    Transfers the contents of the specified node to this one.
+                  </p>
+                </td>
+<td>
+                  <p>
+                    The data type must be Movable, the boost::container::allocator_traits static
+                    method <code class="computeroutput"><span class="identifier">select_on_container_copy_construction</span></code>
+                    must be callable when passed in the allocator of the specified
+                    node, and the allocator reference type must be <code class="computeroutput"><span class="identifier">Node</span><span class="special">::</span><span class="identifier">traits</span><span class="special">::</span><span class="identifier">allocator</span> <span class="keyword">const</span><span class="special">&</span></code>.
+                  </p>
+                </td>
+<td>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Move constructor with allocator
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">Node</span><span class="special">(</span>
+    <span class="identifier">boost</span><span class="special">::</span><span class="identifier">container</span><span class="special">::</span><span class="identifier">allocator_arg</span>
+  <span class="special">,</span> <span class="identifier">alloc</span>
+  <span class="special">,</span> <span class="identifier">rvalue_node</span>
+<span class="special">)</span>
+</pre>
+                </td>
+<td>
+                </td>
+<td>
+                  <p>
+                    Transfers the contents of the specified node to this one. The
+                    new node will use the specified allocator (if the allocator reference
+                    type is mutable) or a copy of it (if the allocator reference
+                    type is to <code class="computeroutput"><span class="keyword">const</span></code>)
+                    to construct its own parent node or its own child nodes if and
+                    when invoking its respective creation methods.
+                  </p>
+                </td>
+<td>
+                  <p>
+                    The data type must be Movable.
+                  </p>
+                </td>
+<td>
+                </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.concepts.movable_tree_node.models"></a><a class="link" href="movable_tree_node.html#tree_node.concepts.movable_tree_node.models" title="Models">Models</a>
+</h4></div></div></div>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem"><p>
+              <a class="link" href="../reference/binary_node.html" title="binary_node<T,Size,AllocatorSelector>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">binary_node</span></code></a>
+              if <code class="computeroutput"><span class="identifier">T</span></code> is Movable
+            </p></li>
+<li class="listitem"><p>
+              <a class="link" href="../reference/nary_node.html" title="nary_node<T,Selector>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">nary_node</span></code></a>
+              if <code class="computeroutput"><span class="identifier">T</span></code> is Movable
+            </p></li>
+<li class="listitem"><p>
+              <a class="link" href="../reference/associative_node.html" title="associative_node<Key,Data,Selector>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">associative_node</span></code></a> if <code class="computeroutput"><span class="identifier">Data</span></code> is Movable
+            </p></li>
+<li class="listitem"><p>
+              <a class="link" href="../reference/with_accumulation.html" title="with_accumulation<BaseGenerator,T1,T2,AccumulationKey>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">with_accumulation</span></code></a> if <code class="computeroutput"><span class="identifier">BaseGenerator</span></code> returns a <span class="bold"><strong>Movable Tree Node</strong></span> model
+            </p></li>
+<li class="listitem"><p>
+              <a class="link" href="../reference/with_count.html" title="with_count<BaseGenerator,T1,T2,Count>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">with_count</span></code></a>
+              if <code class="computeroutput"><span class="identifier">BaseGenerator</span></code> returns
+              a <span class="bold"><strong>Movable Tree Node</strong></span> model
+            </p></li>
+<li class="listitem"><p>
+              <a class="link" href="../reference/with_height.html" title="with_height<BaseGenerator,T1,T2,Height>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">with_height</span></code></a>
+              if <code class="computeroutput"><span class="identifier">BaseGenerator</span></code> returns
+              a <span class="bold"><strong>Movable Tree Node</strong></span> model
+            </p></li>
+<li class="listitem"><p>
+              <a class="link" href="../reference/with_position.html" title="with_position<BaseGenerator,T1,T2>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">with_position</span></code></a>
+              if <code class="computeroutput"><span class="identifier">BaseGenerator</span></code> returns
+              a <span class="bold"><strong>Movable Tree Node</strong></span> model
+            </p></li>
+<li class="listitem"><p>
+              <a class="link" href="../reference/with_rb_flag.html" title="with_red_black_flag<BaseGenerator,T1,T2>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">with_red_black_flag</span></code></a>
+              if <code class="computeroutput"><span class="identifier">BaseGenerator</span></code> returns
+              a <span class="bold"><strong>Movable Tree Node</strong></span> model
+            </p></li>
+</ul></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-2013 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="copyable_tree_node.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../concepts.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="base_tree_node.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/tree_node/libs/tree_node/doc/html/tree_node/concepts/nary_tree_node.html
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ sandbox/tree_node/libs/tree_node/doc/html/tree_node/concepts/nary_tree_node.html	2013-07-07 14:52:52 EDT (Sun, 07 Jul 2013)	(r84977)
@@ -0,0 +1,392 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>N-ary Tree Node</title>
+<link rel="stylesheet" href="http://www.boost.org/doc/libs/release/doc/src/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.77.1">
+<link rel="home" href="../../index.html" title="Chapter 1. tree_node 0.5">
+<link rel="up" href="../concepts.html" title="Concepts">
+<link rel="prev" href="binary_tree_node.html" title="Binary Tree Node">
+<link rel="next" href="node_type_generator.html" title="Node Type Generator">
+</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="binary_tree_node.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../concepts.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="node_type_generator.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="tree_node.concepts.nary_tree_node"></a><a class="link" href="nary_tree_node.html" title="N-ary Tree Node">N-ary Tree Node</a>
+</h3></div></div></div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.concepts.nary_tree_node.description"></a><a class="link" href="nary_tree_node.html#tree_node.concepts.nary_tree_node.description" title="Description">Description</a>
+</h4></div></div></div>
+<p>
+          Models of this concept store arbitrary numbers of children and provide
+          simple child insertion expressions.
+        </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.concepts.nary_tree_node.refinement_of"></a><a class="link" href="nary_tree_node.html#tree_node.concepts.nary_tree_node.refinement_of" title="Refinement of">Refinement
+        of</a>
+</h4></div></div></div>
+<p>
+          <a class="link" href="non_assoc_tree_node.html" title="Non-Associative Tree Node"><span class="bold"><strong>Non-Associative
+          Tree Node</strong></span></a>
+        </p>
+</div>
+<div class="variablelist">
+<p class="title"><b>Notation</b></p>
+<dl class="variablelist">
+<dt><span class="term"><code class="computeroutput"><span class="identifier">Node</span></code></span></dt>
+<dd><p>
+              A type that models the <span class="bold"><strong>N-ary Tree Node</strong></span>
+              concept.
+            </p></dd>
+<dt><span class="term"><code class="computeroutput"><span class="identifier">dest_node</span></code>, <code class="computeroutput"><span class="identifier">src_node</span></code></span></dt>
+<dd><p>
+              Objects of type <code class="computeroutput"><span class="identifier">Node</span><span class="special">&</span></code>.
+            </p></dd>
+<dt><span class="term"><code class="computeroutput"><span class="identifier">const_node</span></code></span></dt>
+<dd><p>
+              An object of type <code class="computeroutput"><span class="identifier">Node</span> <span class="keyword">const</span><span class="special">&</span></code>.
+            </p></dd>
+<dt><span class="term"><code class="computeroutput"><span class="identifier">rvalue_node</span></code></span></dt>
+<dd><p>
+              An object of type <code class="computeroutput"><span class="identifier">Node</span><span class="special">&&</span></code>.
+            </p></dd>
+<dt><span class="term"><code class="computeroutput"><span class="identifier">pos</span></code>, <code class="computeroutput"><span class="identifier">itr</span></code>, <code class="computeroutput"><span class="identifier">itr_end</span></code></span></dt>
+<dd><p>
+              Objects of type <code class="computeroutput"><span class="identifier">Node</span><span class="special">::</span><span class="identifier">iterator</span></code>.
+            </p></dd>
+<dt><span class="term"><code class="computeroutput"><span class="identifier">Args</span></code></span></dt>
+<dd><p>
+              The type of <code class="computeroutput"><span class="identifier">args</span></code>.
+            </p></dd>
+<dt><span class="term"><code class="computeroutput"><span class="identifier">args</span></code></span></dt>
+<dd><p>
+              Arguments to be forwarded to the appropriate <code class="computeroutput"><span class="identifier">Node</span><span class="special">::</span><span class="identifier">traits</span><span class="special">::</span><span class="identifier">data_type</span></code>
+              constructor.
+            </p></dd>
+</dl>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.concepts.nary_tree_node.types"></a><a class="link" href="nary_tree_node.html#tree_node.concepts.nary_tree_node.types" title="Associated Types">Associated
+        Types</a>
+</h4></div></div></div>
+<p>
+          No additional types beyond those defined in the <a class="link" href="non_assoc_tree_node.html" title="Non-Associative Tree Node"><span class="bold"><strong>Non-Associative Tree Node</strong></span></a> concept.
+        </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.concepts.nary_tree_node.expressions"></a><a class="link" href="nary_tree_node.html#tree_node.concepts.nary_tree_node.expressions" title="Valid Expressions and Semantics">Valid
+        Expressions and Semantics</a>
+</h4></div></div></div>
+<p>
+          In addition to the expressions defined in the <a class="link" href="non_assoc_tree_node.html" title="Non-Associative Tree Node"><span class="bold"><strong>Non-Associative Tree Node</strong></span></a> concept, the following
+          expressions must be valid.
+        </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+                  <p>
+                    Name
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Expression
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Return Type
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Semantics
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Requirements
+                  </p>
+                </th>
+<th>
+                  <p>
+                    <a href="http://en.wikipedia.org/wiki/Amortized_analysis" target="_top">Runtime
+                    Complexity</a>
+                  </p>
+                </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+                  <p>
+                    Child creation
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">dest_node</span><span class="special">.</span><span class="identifier">emplace</span><span class="special">(</span>
+    boost::forward<span class="special"><</span><span class="identifier">Args</span><span class="special">>(</span><span class="identifier">args</span><span class="special">)...</span>
+<span class="special">)</span>
+</pre>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">Node</span><span class="special">::</span><span class="identifier">iterator</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Creates and returns a tree node to be stored in the range of
+                    children of <code class="computeroutput"><span class="identifier">dest_node</span></code>.
+                    The node returned will initialize its data with the specified
+                    arguments.
+                  </p>
+                </td>
+<td>
+                </td>
+<td>
+                  <p>
+                    Logarithmic
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Child copy creation
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">dest_node</span><span class="special">.</span><span class="identifier">insert</span><span class="special">(</span><span class="identifier">const_node</span><span class="special">)</span>
+</pre>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">Node</span><span class="special">::</span><span class="identifier">iterator</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Creates and returns a deep copy of <code class="computeroutput"><span class="identifier">const_node</span></code>
+                    to be stored in the range of children of <code class="computeroutput"><span class="identifier">dest_node</span></code>.
+                  </p>
+                </td>
+<td>
+                  <p>
+                    The data type must model the Copy Constructible and Movable
+                    concepts.
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Linear with respect to the number of descendants of <code class="computeroutput"><span class="identifier">const_node</span></code>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Child move insertion
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">dest_node</span><span class="special">.</span><span class="identifier">insert</span><span class="special">(</span><span class="identifier">rvalue_node</span><span class="special">)</span>
+</pre>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">Node</span><span class="special">::</span><span class="identifier">iterator</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Stores <code class="computeroutput"><span class="identifier">rvalue_node</span></code>
+                    in the range of children of <code class="computeroutput"><span class="identifier">dest_node</span></code>.
+                  </p>
+                </td>
+<td>
+                  <p>
+                    The data type must model the Movable concept.
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Logarithmic
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Splice node
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">dest_node</span><span class="special">.</span><span class="identifier">splice</span><span class="special">(</span><span class="identifier">pos</span><span class="special">,</span> <span class="identifier">src_node</span><span class="special">)</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    A Boost.Range whose element type
+                    is <code class="computeroutput"><span class="identifier">Node</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Transfers all child nodes and their descendants from <code class="computeroutput"><span class="identifier">src_node</span></code> to <code class="computeroutput"><span class="identifier">dest_node</span></code>,
+                    with <code class="computeroutput"><span class="identifier">pos</span></code> as the
+                    insertion point. Returns the range of child nodes inserted.
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">pos</span></code> must be dereferenceable
+                    or past-the-end of the range of children of <code class="computeroutput"><span class="identifier">dest_node</span></code>.
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Linear with respect to the number of children of <code class="computeroutput"><span class="identifier">src_node</span></code>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Splice single child
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">dest_node</span><span class="special">.</span><span class="identifier">splice</span><span class="special">(</span><span class="identifier">pos</span><span class="special">,</span> <span class="identifier">src_node</span><span class="special">,</span> <span class="identifier">itr</span><span class="special">)</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    A Boost.Range whose element type
+                    is <code class="computeroutput"><span class="identifier">Node</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Transfers the child node to which <code class="computeroutput"><span class="identifier">itr</span></code>
+                    points, along with its descendants, from <code class="computeroutput"><span class="identifier">src_node</span></code>
+                    to <code class="computeroutput"><span class="identifier">dest_node</span></code>,
+                    with <code class="computeroutput"><span class="identifier">pos</span></code> as the
+                    insertion point. Returns a range containing the node inserted.
+                  </p>
+                </td>
+<td>
+                  <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem"><p>
+                        <code class="computeroutput"><span class="identifier">pos</span></code> must
+                        be dereferenceable or past-the-end of the range of children
+                        of <code class="computeroutput"><span class="identifier">dest_node</span></code>.
+                      </p></li>
+<li class="listitem"><p>
+                        <code class="computeroutput"><span class="identifier">itr</span></code> must
+                        point to a valid child node of <code class="computeroutput"><span class="identifier">src_node</span></code>.
+                      </p></li>
+</ul></div>
+                </td>
+<td>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Splice range
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">dest_node</span><span class="special">.</span><span class="identifier">splice</span><span class="special">(</span>
+    <span class="identifier">pos</span>
+  <span class="special">,</span> <span class="identifier">src_node</span>
+  <span class="special">,</span> <span class="identifier">itr</span>
+  <span class="special">,</span> <span class="identifier">itr_end</span>
+<span class="special">)</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    A Boost.Range whose element type
+                    is <code class="computeroutput"><span class="identifier">Node</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Transfers all child nodes in the specified sub-range, along with
+                    their descendants, from <code class="computeroutput"><span class="identifier">src_node</span></code>
+                    to <code class="computeroutput"><span class="identifier">dest_node</span></code>,
+                    with <code class="computeroutput"><span class="identifier">pos</span></code> as the
+                    insertion point. Returns the range of child nodes inserted.
+                  </p>
+                </td>
+<td>
+                  <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem"><p>
+                        <code class="computeroutput"><span class="identifier">pos</span></code> must
+                        be dereferenceable or past-the-end of the range of children
+                        of <code class="computeroutput"><span class="identifier">dest_node</span></code>.
+                      </p></li>
+<li class="listitem"><p>
+                        <code class="computeroutput"><span class="identifier">itr</span></code> and
+                        <code class="computeroutput"><span class="identifier">itr_end</span></code> must
+                        refer to a valid sub-range of the range of children of <code class="computeroutput"><span class="identifier">src_node</span></code>.
+                      </p></li>
+<li class="listitem"><p>
+                        <code class="computeroutput"><span class="identifier">pos</span></code> must
+                        point outside the sub-range referred to by <code class="computeroutput"><span class="identifier">itr</span></code> and <code class="computeroutput"><span class="identifier">itr_end</span></code>.
+                      </p></li>
+</ul></div>
+                </td>
+<td>
+                  <p>
+                    Linear with respect to the size of the specified sub-range
+                  </p>
+                </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.concepts.nary_tree_node.models"></a><a class="link" href="nary_tree_node.html#tree_node.concepts.nary_tree_node.models" title="Models">Models</a>
+</h4></div></div></div>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem"><p>
+              <a class="link" href="../reference/nary_node.html" title="nary_node<T,Selector>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">nary_node</span></code></a>
+            </p></li>
+<li class="listitem"><p>
+              <a class="link" href="../reference/nary_node_base.html" title="nary_node_base<Derived,T,Selector>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">nary_node_base</span></code></a>
+            </p></li>
+</ul></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-2013 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="binary_tree_node.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../concepts.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="node_type_generator.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/tree_node/libs/tree_node/doc/html/tree_node/concepts/node_type_generator.html
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ sandbox/tree_node/libs/tree_node/doc/html/tree_node/concepts/node_type_generator.html	2013-07-07 14:52:52 EDT (Sun, 07 Jul 2013)	(r84977)
@@ -0,0 +1,163 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Node Type Generator</title>
+<link rel="stylesheet" href="http://www.boost.org/doc/libs/release/doc/src/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.77.1">
+<link rel="home" href="../../index.html" title="Chapter 1. tree_node 0.5">
+<link rel="up" href="../concepts.html" title="Concepts">
+<link rel="prev" href="nary_tree_node.html" title="N-ary Tree Node">
+<link rel="next" href="base_type_generator.html" title="Base Type Generator">
+</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="nary_tree_node.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../concepts.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="base_type_generator.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="tree_node.concepts.node_type_generator"></a><a class="link" href="node_type_generator.html" title="Node Type Generator">Node Type Generator</a>
+</h3></div></div></div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.concepts.node_type_generator.description"></a><a class="link" href="node_type_generator.html#tree_node.concepts.node_type_generator.description" title="Description">Description</a>
+</h4></div></div></div>
+<p>
+          A <span class="bold"><strong>Node Type Generator</strong></span> is a Metafunction Class that returns a <a class="link" href="tree_node.html" title="Tree Node"><span class="bold"><strong>Tree Node</strong></span></a>
+          model of which objects can be instantiated.
+        </p>
+</div>
+<div class="variablelist">
+<p class="title"><b>Notation</b></p>
+<dl class="variablelist">
+<dt><span class="term"><code class="computeroutput"><span class="identifier">Generator</span></code></span></dt>
+<dd><p>
+              A type that models the <span class="bold"><strong>Node Type Generator</strong></span>
+              concept.
+            </p></dd>
+<dt><span class="term"><code class="computeroutput"><span class="identifier">Key</span></code></span></dt>
+<dd><p>
+              The key type of the <a class="link" href="associative_tree_node.html" title="Associative Tree Node"><span class="bold"><strong>Associative Tree Node</strong></span></a> to be returned.
+            </p></dd>
+<dt><span class="term"><code class="computeroutput"><span class="identifier">Data</span></code></span></dt>
+<dd><p>
+              The data type of the <a class="link" href="tree_node.html" title="Tree Node"><span class="bold"><strong>Tree Node</strong></span></a> to be returned.
+            </p></dd>
+</dl>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.concepts.node_type_generator.expressions"></a><a class="link" href="node_type_generator.html#tree_node.concepts.node_type_generator.expressions" title="Valid Expressions and Semantics">Valid
+        Expressions and Semantics</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>
+                    Return Type
+                  </p>
+                </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+                  <p>
+                    Non-associative invocation
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="literal">boost::mpl::apply_wrap1<Generator,Data>::type</code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    A <a class="link" href="non_assoc_tree_node.html" title="Non-Associative Tree Node"><span class="bold"><strong>Non-Associative Tree Node</strong></span></a> model
+                    whose <code class="computeroutput"><span class="identifier">traits</span><span class="special">::</span><span class="identifier">data_type</span></code>
+                    is the same as <code class="computeroutput"><span class="identifier">Data</span></code>.
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Associative invocation
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="literal">boost::mpl::apply_wrap2<Generator,Key,Data>::type</code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    An <a class="link" href="associative_tree_node.html" title="Associative Tree Node"><span class="bold"><strong>Associative Tree Node</strong></span></a> model whose
+                    <code class="computeroutput"><span class="identifier">traits</span><span class="special">::</span><span class="identifier">key_type</span></code> is the same as <code class="computeroutput"><span class="identifier">Key</span></code> and whose <code class="computeroutput"><span class="identifier">traits</span><span class="special">::</span><span class="identifier">data_type</span></code> is the same as <code class="computeroutput"><span class="identifier">Data</span></code>.
+                  </p>
+                </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.concepts.node_type_generator.models"></a><a class="link" href="node_type_generator.html#tree_node.concepts.node_type_generator.models" title="Models">Models</a>
+</h4></div></div></div>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem"><p>
+              <a class="link" href="../reference/binary_node_gen.html" title="binary_node_gen<Size,AllocatorSelector>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">binary_node_gen</span></code></a>
+            </p></li>
+<li class="listitem"><p>
+              <a class="link" href="../reference/nary_node_gen.html" title="nary_node_gen<Selector>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">nary_node_gen</span></code></a>
+            </p></li>
+<li class="listitem"><p>
+              <a class="link" href="../reference/associative_node_gen.html" title="associative_node_gen<Selector>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">associative_node_gen</span></code></a>
+            </p></li>
+<li class="listitem"><p>
+              <a class="link" href="../reference/with_accumulation_gen.html" title="with_accumulation_gen<BaseGenerator>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">with_accumulation_gen</span></code></a>
+            </p></li>
+<li class="listitem"><p>
+              <a class="link" href="../reference/with_count_gen.html" title="with_count_gen<BaseGenerator>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">with_count_gen</span></code></a>
+            </p></li>
+<li class="listitem"><p>
+              <a class="link" href="../reference/with_height_gen.html" title="with_height_gen<BaseGenerator>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">with_height_gen</span></code></a>
+            </p></li>
+<li class="listitem"><p>
+              <a class="link" href="../reference/with_position_gen.html" title="with_position_gen<BaseGenerator>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">with_position_gen</span></code></a>
+            </p></li>
+<li class="listitem"><p>
+              <a class="link" href="../reference/with_rb_flag_gen.html" title="with_red_black_flag_gen<BaseGenerator>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">with_red_black_flag_gen</span></code></a>
+            </p></li>
+</ul></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-2013 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="nary_tree_node.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../concepts.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="base_type_generator.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/tree_node/libs/tree_node/doc/html/tree_node/concepts/non_assoc_tree_node.html
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ sandbox/tree_node/libs/tree_node/doc/html/tree_node/concepts/non_assoc_tree_node.html	2013-07-07 14:52:52 EDT (Sun, 07 Jul 2013)	(r84977)
@@ -0,0 +1,104 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Non-Associative Tree Node</title>
+<link rel="stylesheet" href="http://www.boost.org/doc/libs/release/doc/src/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.77.1">
+<link rel="home" href="../../index.html" title="Chapter 1. tree_node 0.5">
+<link rel="up" href="../concepts.html" title="Concepts">
+<link rel="prev" href="associative_tree_node.html" title="Associative Tree Node">
+<link rel="next" href="binary_tree_node.html" title="Binary Tree 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="associative_tree_node.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../concepts.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="binary_tree_node.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="tree_node.concepts.non_assoc_tree_node"></a><a class="link" href="non_assoc_tree_node.html" title="Non-Associative Tree Node">Non-Associative
+      Tree Node</a>
+</h3></div></div></div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.concepts.non_assoc_tree_node.description"></a><a class="link" href="non_assoc_tree_node.html#tree_node.concepts.non_assoc_tree_node.description" title="Description">Description</a>
+</h4></div></div></div>
+<p>
+          Models of this concept provide access to their child nodes via iterator
+          dereferencing.
+        </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.concepts.non_assoc_tree_node.refinement_of"></a><a class="link" href="non_assoc_tree_node.html#tree_node.concepts.non_assoc_tree_node.refinement_of" title="Refinement of">Refinement
+        of</a>
+</h4></div></div></div>
+<p>
+          <a class="link" href="tree_node.html" title="Tree Node"><span class="bold"><strong>Tree
+          Node</strong></span></a>
+        </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.concepts.non_assoc_tree_node.types"></a><a class="link" href="non_assoc_tree_node.html#tree_node.concepts.non_assoc_tree_node.types" title="Associated Types">Associated
+        Types</a>
+</h4></div></div></div>
+<p>
+          No additional types beyond those defined in the <a class="link" href="tree_node.html" title="Tree Node"><span class="bold"><strong>Tree Node</strong></span></a> concept; however, the requirements
+          for the child iterator types are strengthened:
+        </p>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem"><p>
+              The value type of <code class="computeroutput"><span class="identifier">Node</span><span class="special">::</span><span class="identifier">iterator</span></code>
+              must be <code class="computeroutput"><span class="identifier">Node</span><span class="special">&</span></code>.
+            </p></li>
+<li class="listitem"><p>
+              The value type of <code class="computeroutput"><span class="identifier">Node</span><span class="special">::</span><span class="identifier">const_iterator</span></code>
+              must be <code class="computeroutput"><span class="identifier">Node</span> <span class="keyword">const</span><span class="special">&</span></code>.
+            </p></li>
+</ul></div>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.concepts.non_assoc_tree_node.expressions"></a><a class="link" href="non_assoc_tree_node.html#tree_node.concepts.non_assoc_tree_node.expressions" title="Valid Expressions and Semantics">Valid
+        Expressions and Semantics</a>
+</h4></div></div></div>
+<p>
+          None beyond those defined in the <a class="link" href="tree_node.html" title="Tree Node"><span class="bold"><strong>Tree Node</strong></span></a> concept.
+        </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.concepts.non_assoc_tree_node.models"></a><a class="link" href="non_assoc_tree_node.html#tree_node.concepts.non_assoc_tree_node.models" title="Models">Models</a>
+</h4></div></div></div>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem"><p>
+              <a class="link" href="../reference/binary_node.html" title="binary_node<T,Size,AllocatorSelector>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">binary_node</span></code></a>
+            </p></li>
+<li class="listitem"><p>
+              <a class="link" href="../reference/binary_node_base.html" title="binary_node_base<Derived,T,Selector>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">binary_node_base</span></code></a>
+            </p></li>
+<li class="listitem"><p>
+              <a class="link" href="../reference/nary_node.html" title="nary_node<T,Selector>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">nary_node</span></code></a>
+            </p></li>
+<li class="listitem"><p>
+              <a class="link" href="../reference/nary_node_base.html" title="nary_node_base<Derived,T,Selector>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">nary_node_base</span></code></a>
+            </p></li>
+</ul></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-2013 Cromwell D. Enage<p>
+        Distributed under the Boost Software License, Version 1.0. (See accompanying
+        file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="associative_tree_node.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../concepts.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="binary_tree_node.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/tree_node/libs/tree_node/doc/html/tree_node/concepts/reversible_tree_node.html
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ sandbox/tree_node/libs/tree_node/doc/html/tree_node/concepts/reversible_tree_node.html	2013-07-07 14:52:52 EDT (Sun, 07 Jul 2013)	(r84977)
@@ -0,0 +1,421 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Reversible Tree Node</title>
+<link rel="stylesheet" href="http://www.boost.org/doc/libs/release/doc/src/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.77.1">
+<link rel="home" href="../../index.html" title="Chapter 1. tree_node 0.5">
+<link rel="up" href="../concepts.html" title="Concepts">
+<link rel="prev" href="base_tree_node.html" title="Base Tree Node">
+<link rel="next" href="associative_tree_node.html" title="Associative Tree 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="base_tree_node.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../concepts.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="associative_tree_node.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="tree_node.concepts.reversible_tree_node"></a><a class="link" href="reversible_tree_node.html" title="Reversible Tree Node">Reversible Tree
+      Node</a>
+</h3></div></div></div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.concepts.reversible_tree_node.description"></a><a class="link" href="reversible_tree_node.html#tree_node.concepts.reversible_tree_node.description" title="Description">Description</a>
+</h4></div></div></div>
+<p>
+          Objects of types that model both the <a class="link" href="tree_node_iterator.html" title="Tree Node Iterator"><span class="bold"><strong>Tree Node Iterator</strong></span></a> and Bidirectional Iterator concepts can iterate
+          over objects of types that model this concept.
+        </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.concepts.reversible_tree_node.refinement_of"></a><a class="link" href="reversible_tree_node.html#tree_node.concepts.reversible_tree_node.refinement_of" title="Refinement of">Refinement
+        of</a>
+</h4></div></div></div>
+<p>
+          <a class="link" href="tree_node.html" title="Tree Node"><span class="bold"><strong>Tree
+          Node</strong></span></a>
+        </p>
+</div>
+<div class="variablelist">
+<p class="title"><b>Notation</b></p>
+<dl class="variablelist">
+<dt><span class="term"><code class="computeroutput"><span class="identifier">Node</span></code></span></dt>
+<dd><p>
+              A type that models the <span class="bold"><strong>Reversible Tree Node</strong></span>
+              concept.
+            </p></dd>
+<dt><span class="term"><code class="computeroutput"><span class="identifier">node</span></code></span></dt>
+<dd><p>
+              An object of type <code class="computeroutput"><span class="identifier">Node</span><span class="special">&</span></code>.
+            </p></dd>
+<dt><span class="term"><code class="computeroutput"><span class="identifier">const_node</span></code></span></dt>
+<dd><p>
+              An object of type <code class="computeroutput"><span class="identifier">Node</span> <span class="keyword">const</span><span class="special">&</span></code>.
+            </p></dd>
+</dl>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.concepts.reversible_tree_node.types"></a><a class="link" href="reversible_tree_node.html#tree_node.concepts.reversible_tree_node.types" title="Associated Types">Associated
+        Types</a>
+</h4></div></div></div>
+<p>
+          Two new types are introduced.
+        </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+                  <p>
+                    Name
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Expression
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Description
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Requirements
+                  </p>
+                </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+                  <p>
+                    Reverse iterator type
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">Node</span><span class="special">::</span><span class="identifier">reverse_iterator</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    The type of iterator used to iterate in reverse through the children
+                    of a <code class="computeroutput"><span class="identifier">Node</span></code> object.
+                  </p>
+                </td>
+<td>
+                  <p>
+                    It must model the Bidirectional Iterator concept,
+                    and it must be convertible to <code class="computeroutput"><span class="identifier">Node</span><span class="special">::</span><span class="identifier">const_reverse_iterator</span></code>.
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Immutable reverse iterator type
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">Node</span><span class="special">::</span><span class="identifier">const_reverse_iterator</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    The type of iterator used to iterate in reverse through the children
+                    of a <code class="computeroutput"><span class="identifier">Node</span> <span class="keyword">const</span></code>
+                    object.
+                  </p>
+                </td>
+<td>
+                  <p>
+                    It must model the Bidirectional Iterator concept,
+                    and it must <span class="emphasis"><em>not</em></span> point to a mutable object.
+                  </p>
+                </td>
+</tr>
+</tbody>
+</table></div>
+<p>
+          In addition, the requirements for the iterator types are strengthened:
+          they must also model the Bidirectional Iterator concept.
+        </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.concepts.reversible_tree_node.expressions"></a><a class="link" href="reversible_tree_node.html#tree_node.concepts.reversible_tree_node.expressions" title="Valid Expressions and Semantics">Valid
+        Expressions and Semantics</a>
+</h4></div></div></div>
+<p>
+          In addition to the expressions defined in the <a class="link" href="tree_node.html" title="Tree Node"><span class="bold"><strong>Tree Node</strong></span></a> concept, the following expressions
+          must be valid.
+        </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+                  <p>
+                    Name
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Expression
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Return Type
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Semantics
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Type Requirements
+                  </p>
+                </th>
+<th>
+                  <p>
+                    <a href="http://en.wikipedia.org/wiki/Amortized_analysis" target="_top">Runtime
+                    Complexity</a>
+                  </p>
+                </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+                  <p>
+                    Children reverse range begin read-only access
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">const_node</span><span class="special">.</span><span class="identifier">crbegin</span><span class="special">()</span>
+<span class="identifier">const_node</span><span class="special">.</span><span class="identifier">rbegin</span><span class="special">()</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">Node</span><span class="special">::</span><span class="identifier">const_reverse_iterator</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Returns an iterator pointing to the beginning of the reverse
+                    range of children of the tree node. If the range is empty, then
+                    the iterator points past-the-end.
+                  </p>
+                </td>
+<td>
+                </td>
+<td>
+                  <p>
+                    Constant
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Children reverse range begin access
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">node</span><span class="special">.</span><span class="identifier">rbegin</span><span class="special">()</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">Node</span><span class="special">::</span><span class="identifier">reverse_iterator</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Returns an iterator pointing to the beginning of the reverse
+                    range of children of the tree node. If the range is empty, then
+                    the iterator points past-the-end.
+                  </p>
+                </td>
+<td>
+                </td>
+<td>
+                  <p>
+                    Constant
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Children reverse range past-the-end read-only access
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">const_node</span><span class="special">.</span><span class="identifier">crend</span><span class="special">()</span>
+<span class="identifier">const_node</span><span class="special">.</span><span class="identifier">rend</span><span class="special">()</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">Node</span><span class="special">::</span><span class="identifier">const_reverse_iterator</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Returns an iterator pointing past the end of the reverse range
+                    of children of the tree node.
+                  </p>
+                </td>
+<td>
+                </td>
+<td>
+                  <p>
+                    Constant
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Children reverse range past-the-end access
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">node</span><span class="special">.</span><span class="identifier">rend</span><span class="special">()</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">Node</span><span class="special">::</span><span class="identifier">reverse_iterator</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Returns an iterator pointing past the end of the reverse range
+                    of children of the tree node.
+                  </p>
+                </td>
+<td>
+                </td>
+<td>
+                  <p>
+                    Constant
+                  </p>
+                </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.concepts.reversible_tree_node.models"></a><a class="link" href="reversible_tree_node.html#tree_node.concepts.reversible_tree_node.models" title="Models">Models</a>
+</h4></div></div></div>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem"><p>
+              <a class="link" href="../reference/binary_node.html" title="binary_node<T,Size,AllocatorSelector>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">binary_node</span></code></a>
+            </p></li>
+<li class="listitem"><p>
+              <a class="link" href="../reference/binary_node_base.html" title="binary_node_base<Derived,T,Selector>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">binary_node_base</span></code></a>
+            </p></li>
+<li class="listitem"><p>
+              <a class="link" href="../reference/nary_node.html" title="nary_node<T,Selector>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">nary_node</span></code></a>
+              if <code class="literal">boost::container_gen<Selector,<a class="link" href="../reference/nary_node.html" title="nary_node<T,Selector>">tree_node::nary_node</a>>::type</code>
+              returns a Reversible Container model
+            </p></li>
+<li class="listitem"><p>
+              <a class="link" href="../reference/nary_node_base.html" title="nary_node_base<Derived,T,Selector>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">nary_node_base</span></code></a>
+              if <code class="literal">boost::container_gen<Selector,Derived>::type</code>
+              returns a Reversible Container model
+            </p></li>
+<li class="listitem"><p>
+              <a class="link" href="../reference/associative_node.html" title="associative_node<Key,Data,Selector>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">associative_node</span></code></a> if <code class="literal">boost::container_gen<Selector,Key,<a class="link" href="../reference/associative_node.html" title="associative_node<Key,Data,Selector>">tree_node::associative_node</a>>::type</code>
+              returns a Reversible Container model
+            </p></li>
+<li class="listitem"><p>
+              <a class="link" href="../reference/associative_node_base.html" title="associative_node_base<Derived,Key,Data,Selector>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">associative_node_base</span></code></a> if
+              <code class="literal">boost::container_gen<Selector,Key,Derived>::type</code>
+              returns a Reversible Container model
+            </p></li>
+<li class="listitem"><p>
+              <a class="link" href="../reference/with_accumulation.html" title="with_accumulation<BaseGenerator,T1,T2,AccumulationKey>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">with_accumulation</span></code></a> if <code class="computeroutput"><span class="identifier">BaseGenerator</span></code> returns a <span class="bold"><strong>Reversible Tree Node</strong></span> model
+            </p></li>
+<li class="listitem"><p>
+              <a class="link" href="../reference/with_accumulation_base.html" title="with_accumulation_base< Derived , BaseGenerator , T1 , T2 , Key , Tag , IncludesAllDescendants , IncludesRoot , Value >"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">with_accumulation_base</span></code></a> if
+              <code class="computeroutput"><span class="identifier">BaseGenerator</span></code> returns
+              a <span class="bold"><strong>Reversible Tree Node</strong></span> model
+            </p></li>
+<li class="listitem"><p>
+              <a class="link" href="../reference/with_count.html" title="with_count<BaseGenerator,T1,T2,Count>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">with_count</span></code></a>
+              if <code class="computeroutput"><span class="identifier">BaseGenerator</span></code> returns
+              a <span class="bold"><strong>Reversible Tree Node</strong></span> model
+            </p></li>
+<li class="listitem"><p>
+              <a class="link" href="../reference/with_count_base.html" title="with_count_base<Derived,BaseGenerator,T1,T2,Count>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">with_count_base</span></code></a>
+              if <code class="computeroutput"><span class="identifier">BaseGenerator</span></code> returns
+              a <span class="bold"><strong>Reversible Tree Node</strong></span> model
+            </p></li>
+<li class="listitem"><p>
+              <a class="link" href="../reference/with_height.html" title="with_height<BaseGenerator,T1,T2,Height>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">with_height</span></code></a>
+              if <code class="computeroutput"><span class="identifier">BaseGenerator</span></code> returns
+              a <span class="bold"><strong>Reversible Tree Node</strong></span> model
+            </p></li>
+<li class="listitem"><p>
+              <a class="link" href="../reference/with_height_base.html" title="with_height_base<Derived,BaseGenerator,T1,T2,Height>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">with_height_base</span></code></a> if <code class="computeroutput"><span class="identifier">BaseGenerator</span></code> returns a <span class="bold"><strong>Reversible Tree Node</strong></span> model
+            </p></li>
+<li class="listitem"><p>
+              <a class="link" href="../reference/with_position.html" title="with_position<BaseGenerator,T1,T2>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">with_position</span></code></a>
+              if <code class="computeroutput"><span class="identifier">BaseGenerator</span></code> returns
+              a <span class="bold"><strong>Reversible Tree Node</strong></span> model
+            </p></li>
+<li class="listitem"><p>
+              <a class="link" href="../reference/with_position_base.html" title="with_position_base<Derived,BaseGenerator,T1,T2>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">with_position_base</span></code></a> if <code class="computeroutput"><span class="identifier">BaseGenerator</span></code> returns a <span class="bold"><strong>Reversible Tree Node</strong></span> model
+            </p></li>
+<li class="listitem"><p>
+              <a class="link" href="../reference/with_rb_flag.html" title="with_red_black_flag<BaseGenerator,T1,T2>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">with_red_black_flag</span></code></a>
+              if <code class="computeroutput"><span class="identifier">BaseGenerator</span></code> returns
+              a <span class="bold"><strong>Reversible Tree Node</strong></span> model
+            </p></li>
+<li class="listitem"><p>
+              <a class="link" href="../reference/with_rb_flag_base.html" title="with_red_black_flag_base<Derived,BaseGenerator,T1,T2>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">with_red_black_flag_base</span></code></a> if
+              <code class="computeroutput"><span class="identifier">BaseGenerator</span></code> returns
+              a <span class="bold"><strong>Reversible Tree Node</strong></span> model
+            </p></li>
+</ul></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-2013 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="base_tree_node.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../concepts.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="associative_tree_node.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/tree_node/libs/tree_node/doc/html/tree_node/concepts/tree_node.html
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ sandbox/tree_node/libs/tree_node/doc/html/tree_node/concepts/tree_node.html	2013-07-07 14:52:52 EDT (Sun, 07 Jul 2013)	(r84977)
@@ -0,0 +1,946 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Tree Node</title>
+<link rel="stylesheet" href="http://www.boost.org/doc/libs/release/doc/src/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.77.1">
+<link rel="home" href="../../index.html" title="Chapter 1. tree_node 0.5">
+<link rel="up" href="../concepts.html" title="Concepts">
+<link rel="prev" href="../concepts.html" title="Concepts">
+<link rel="next" href="copyable_tree_node.html" title="Copyable Tree 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="../concepts.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../concepts.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="copyable_tree_node.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="tree_node.concepts.tree_node"></a><a class="link" href="tree_node.html" title="Tree Node">Tree Node</a>
+</h3></div></div></div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.concepts.tree_node.description"></a><a class="link" href="tree_node.html#tree_node.concepts.tree_node.description" title="Description">Description</a>
+</h4></div></div></div>
+<p>
+          All tree node implementations that this library provides model this concept:
+          a structure that maintains information about its data and its immediate
+          parent-child relationships. However, in practice, a full-fledged tree node
+          data structure or adaptor consists of four components: a <a class="link" href="base_tree_node.html" title="Base Tree Node"><span class="bold"><strong>Base Tree Node</strong></span></a> model that defines the functionality,
+          a <a class="link" href="base_type_generator.html" title="Base Type Generator"><span class="bold"><strong>Base
+          Type Generator</strong></span></a> that returns the <a class="link" href="base_tree_node.html" title="Base Tree Node"><span class="bold"><strong>Base Tree Node</strong></span></a> model from which adaptor types
+          can also inherit, a <span class="bold"><strong>Tree Node</strong></span> model that
+          inherits from the base type and is better suited for external usage, and
+          a <a class="link" href="node_type_generator.html" title="Node Type Generator"><span class="bold"><strong>Node
+          Type Generator</strong></span></a> that returns the <span class="bold"><strong>Tree
+          Node</strong></span> model.
+        </p>
+</div>
+<div class="variablelist">
+<p class="title"><b>Notation</b></p>
+<dl class="variablelist">
+<dt><span class="term"><code class="computeroutput"><span class="identifier">Node</span></code></span></dt>
+<dd><p>
+              A type that models the <span class="bold"><strong>Tree Node</strong></span> concept.
+            </p></dd>
+<dt><span class="term"><code class="computeroutput"><span class="identifier">node</span></code></span></dt>
+<dd><p>
+              An object of type <code class="computeroutput"><span class="identifier">Node</span><span class="special">&</span></code>.
+            </p></dd>
+<dt><span class="term"><code class="computeroutput"><span class="identifier">const_node</span></code></span></dt>
+<dd><p>
+              An object of type <code class="computeroutput"><span class="identifier">Node</span> <span class="keyword">const</span><span class="special">&</span></code>.
+            </p></dd>
+<dt><span class="term"><code class="computeroutput"><span class="identifier">alloc</span></code></span></dt>
+<dd><p>
+              An object of type <code class="computeroutput"><span class="identifier">Node</span><span class="special">::</span><span class="identifier">traits</span><span class="special">::</span><span class="identifier">allocator_reference</span></code>.
+            </p></dd>
+<dt><span class="term"><code class="computeroutput"><span class="identifier">Args</span></code></span></dt>
+<dd><p>
+              The type of <code class="computeroutput"><span class="identifier">args</span></code>.
+            </p></dd>
+<dt><span class="term"><code class="computeroutput"><span class="identifier">args</span></code></span></dt>
+<dd><p>
+              Arguments to be forwarded to the appropriate <code class="computeroutput"><span class="identifier">Node</span><span class="special">::</span><span class="identifier">traits</span><span class="special">::</span><span class="identifier">data_type</span></code>
+              constructor.
+            </p></dd>
+</dl>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.concepts.tree_node.types"></a><a class="link" href="tree_node.html#tree_node.concepts.tree_node.types" title="Associated Types">Associated Types</a>
+</h4></div></div></div>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+                  <p>
+                    Name
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Expression
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Description
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Requirements
+                  </p>
+                </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+                  <p>
+                    Super type
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">Node</span><span class="special">::</span><span class="identifier">super_t</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    The type from which <code class="computeroutput"><span class="identifier">Node</span></code>
+                    inherits its functionality.
+                  </p>
+                </td>
+<td>
+                  <p>
+                    It must either be <code class="literal"><a class="link" href="../reference/tree_node_base.html" title="tree_node_base<Derived>">tree_node::tree_node_base</a><Node></code>
+                    or model the <a class="link" href="base_tree_node.html" title="Base Tree Node"><span class="bold"><strong>Base Tree Node</strong></span></a> concept.
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Data type
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">Node</span><span class="special">::</span><span class="identifier">traits</span><span class="special">::</span><span class="identifier">data_type</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    The type of user data stored in a tree node.
+                  </p>
+                </td>
+<td>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Allocator type
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">Node</span><span class="special">::</span><span class="identifier">traits</span><span class="special">::</span><span class="identifier">allocator</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    The type that defines the memory model to be used by the child
+                    creation methods for creating <code class="computeroutput"><span class="identifier">Node</span></code>
+                    objects.
+                  </p>
+                </td>
+<td>
+                  <p>
+                    It must be a valid boost::container::allocator_traits template
+                    argument.
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Allocator reference type
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">Node</span><span class="special">::</span><span class="identifier">traits</span><span class="special">::</span><span class="identifier">allocator_reference</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    The type to which <code class="computeroutput"><span class="identifier">alloc</span></code>
+                    will be bound if passed to the emplacement constructor.
+                  </p>
+                </td>
+<td>
+                  <p>
+                    It must be either <code class="computeroutput"><span class="identifier">Node</span><span class="special">::</span><span class="identifier">traits</span><span class="special">::</span><span class="identifier">allocator</span><span class="special">&</span></code> or <code class="computeroutput"><span class="identifier">Node</span><span class="special">::</span><span class="identifier">traits</span><span class="special">::</span><span class="identifier">allocator</span>
+                    <span class="keyword">const</span><span class="special">&</span></code>.
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Pointer type
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">Node</span><span class="special">::</span><span class="identifier">pointer</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    The type of a pointer to a <code class="computeroutput"><span class="identifier">Node</span></code>
+                    object.
+                  </p>
+                </td>
+<td>
+                  <p>
+                    It must model the Trivial Iterator concept, it must
+                    point to a mutable object, and it must be implicitly convertible
+                    to <code class="computeroutput"><span class="identifier">Node</span><span class="special">::</span><span class="identifier">const_pointer</span></code>.
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Pointer-to-const type
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">Node</span><span class="special">::</span><span class="identifier">const_pointer</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    The type of a pointer to a <code class="computeroutput"><span class="identifier">Node</span>
+                    <span class="keyword">const</span></code> object.
+                  </p>
+                </td>
+<td>
+                  <p>
+                    It must model the Trivial Iterator concept, and
+                    it must <span class="emphasis"><em>not</em></span> point to a mutable object.
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Iterator type
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">Node</span><span class="special">::</span><span class="identifier">iterator</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    The type of iterator used to iterate through the children of
+                    a <code class="computeroutput"><span class="identifier">Node</span></code> object.
+                  </p>
+                </td>
+<td>
+                  <p>
+                    It must model the Input Iterator concept, and it
+                    must be convertible to <code class="computeroutput"><span class="identifier">Node</span><span class="special">::</span><span class="identifier">const_iterator</span></code>.
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Immutable iterator type
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">Node</span><span class="special">::</span><span class="identifier">const_iterator</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    The type of iterator used to iterate through the children of
+                    a <code class="computeroutput"><span class="identifier">Node</span> <span class="keyword">const</span></code>
+                    object.
+                  </p>
+                </td>
+<td>
+                  <p>
+                    It must model the Input Iterator concept, and it
+                    must <span class="emphasis"><em>not</em></span> point to a mutable object.
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Size type
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">Node</span><span class="special">::</span><span class="identifier">size_type</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    The type of unsigned integer used to represent the number of
+                    children of a <code class="computeroutput"><span class="identifier">Node</span>
+                    <span class="keyword">const</span></code> object.
+                  </p>
+                </td>
+<td>
+                </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.concepts.tree_node.expressions"></a><a class="link" href="tree_node.html#tree_node.concepts.tree_node.expressions" title="Valid Expressions and Semantics">Valid Expressions
+        and Semantics</a>
+</h4></div></div></div>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+                  <p>
+                    Name
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Expression
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Return Type
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Semantics
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Type Requirements
+                  </p>
+                </th>
+<th>
+                  <p>
+                    <a href="http://en.wikipedia.org/wiki/Amortized_analysis" target="_top">Runtime
+                    Complexity</a>
+                  </p>
+                </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+                  <p>
+                    Emplacement constructor
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">Node</span><span class="special">(</span>boost::forward<span class="special"><</span><span class="identifier">Args</span><span class="special">>(</span><span class="identifier">args</span><span class="special">)...)</span>
+</pre>
+                </td>
+<td>
+                </td>
+<td>
+                  <p>
+                    Constructs a <code class="computeroutput"><span class="identifier">Node</span></code>
+                    object that initializes its user data with the specified arguments.
+                  </p>
+                </td>
+<td>
+                  <p>
+                    The allocator type must be Default Constructible, and the
+                    allocator reference type must be <code class="computeroutput"><span class="identifier">Node</span><span class="special">::</span><span class="identifier">traits</span><span class="special">::</span><span class="identifier">allocator</span>
+                    <span class="keyword">const</span><span class="special">&</span></code>.
+                  </p>
+                </td>
+<td>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Emplacement constructor with allocator
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">Node</span><span class="special">(</span>
+    <span class="identifier">boost</span><span class="special">::</span><span class="identifier">container</span><span class="special">::</span><span class="identifier">allocator_arg</span>
+  <span class="special">,</span> <span class="identifier">alloc</span>
+  <span class="special">,</span> boost::forward<span class="special"><</span><span class="identifier">Args</span><span class="special">>(</span><span class="identifier">args</span><span class="special">)...</span>
+<span class="special">)</span>
+</pre>
+                </td>
+<td>
+                </td>
+<td>
+                  <p>
+                    Constructs a <code class="computeroutput"><span class="identifier">Node</span></code>
+                    object that initializes its user data with the specified arguments.
+                    The new node will use the specified allocator (if the allocator
+                    reference type is mutable) or a copy of it (if the allocator
+                    reference type is to <code class="computeroutput"><span class="keyword">const</span></code>)
+                    to construct its own parent node or its own child nodes if and
+                    when invoking its respective creation methods.
+                  </p>
+                </td>
+<td>
+                </td>
+<td>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Data read-only access
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">get</span><span class="special"><</span><a class="link" href="../reference/data_key.html" title="data_key">tree_node::data_key</a><span class="special">>(</span><span class="identifier">const_node</span><span class="special">)</span>
+<span class="identifier">get</span><span class="special">(</span><span class="identifier">const_node</span><span class="special">,</span> <a class="link" href="../reference/data_key.html" title="data_key">tree_node::data_key</a><span class="special">())</span>
+</pre>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">Node</span><span class="special">::</span><span class="identifier">traits</span><span class="special">::</span><span class="identifier">data_type</span> <span class="keyword">const</span><span class="special">&</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Returns the user data stored in the tree node.
+                  </p>
+                </td>
+<td>
+                </td>
+<td>
+                  <p>
+                    Constant
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Data access
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">get</span><span class="special"><</span><a class="link" href="../reference/data_key.html" title="data_key">tree_node::data_key</a><span class="special">>(</span><span class="identifier">node</span><span class="special">)</span>
+<span class="identifier">get</span><span class="special">(</span><span class="identifier">node</span><span class="special">,</span> <a class="link" href="../reference/data_key.html" title="data_key">tree_node::data_key</a><span class="special">())</span>
+</pre>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">Node</span><span class="special">::</span><span class="identifier">traits</span><span class="special">::</span><span class="identifier">data_type</span><span class="special">&</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Returns the user data stored in the tree node.
+                  </p>
+                </td>
+<td>
+                </td>
+<td>
+                  <p>
+                    Constant
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Data modification
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">put</span><span class="special">(</span><span class="identifier">node</span><span class="special">,</span> <a class="link" href="../reference/data_key.html" title="data_key">tree_node::data_key</a><span class="special">(),</span> <span class="identifier">data</span><span class="special">)</span>
+</pre>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">void</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Sets the user data to be stored in the tree node.
+                  </p>
+                </td>
+<td>
+                  <p>
+                    The type of <code class="computeroutput"><span class="identifier">data</span></code>
+                    must be convertible to <code class="computeroutput"><span class="identifier">Node</span><span class="special">::</span><span class="identifier">traits</span><span class="special">::</span><span class="identifier">data_type</span></code>.
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Constant
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Key-value read-only access
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">get</span><span class="special"><</span><span class="identifier">Key</span><span class="special">>(</span><span class="identifier">const_node</span><span class="special">)</span>
+<span class="identifier">get</span><span class="special">(</span><span class="identifier">const_node</span><span class="special">,</span> <span class="identifier">Key</span><span class="special">())</span>
+</pre>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><a class="link" href="../reference/at_key.html#tree_node.reference.at_key.result_of" title="Return Type Metafunction Synopsis">tree_node::result_of::at_key</a><span class="special"><</span>
+    <span class="identifier">Node</span> <span class="keyword">const</span>
+  <span class="special">,</span> <span class="identifier">Key</span>
+<span class="special">>::</span><span class="identifier">type</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Returns the value that the tree node associates with the specified
+                    key.
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="literal"><a class="link" href="../reference/has_key.html#tree_node.reference.has_key.result_of" title="Return Type Metafunction Synopsis">tree_node::result_of::has_key</a><Node,Key></code>
+                    must be equivalent to boost::mpl::true_.
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Constant
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Key-value access
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">get</span><span class="special"><</span><span class="identifier">Key</span><span class="special">>(</span><span class="identifier">node</span><span class="special">)</span>
+<span class="identifier">get</span><span class="special">(</span><span class="identifier">node</span><span class="special">,</span> <span class="identifier">Key</span><span class="special">())</span>
+</pre>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><a class="link" href="../reference/at_key.html#tree_node.reference.at_key.result_of" title="Return Type Metafunction Synopsis">tree_node::result_of::at_key</a><span class="special"><</span>
+    <span class="identifier">Node</span>
+  <span class="special">,</span> <span class="identifier">Key</span>
+<span class="special">>::</span><span class="identifier">type</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Returns the value that the tree node associates with the specified
+                    key.
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="literal"><a class="link" href="../reference/has_key.html#tree_node.reference.has_key.result_of" title="Return Type Metafunction Synopsis">tree_node::result_of::has_key</a><Node,Key></code>
+                    must be equivalent to boost::mpl::true_.
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Constant
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Key-value modification
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">put</span><span class="special">(</span><span class="identifier">node</span><span class="special">,</span> <span class="identifier">Key</span><span class="special">(),</span> <span class="identifier">value</span><span class="special">)</span>
+</pre>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">void</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Sets the value to be associated with the specified key type in
+                    the tree node.
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="literal"><a class="link" href="../reference/has_key.html#tree_node.reference.has_key.result_of" title="Return Type Metafunction Synopsis">tree_node::result_of::has_key</a><Node,Key></code>
+                    must be equivalent to boost::mpl::true_, and the type
+                    of <code class="computeroutput"><span class="identifier">value</span></code> must
+                    be convertible to <code class="literal"><a class="link" href="../reference/value_at_key.html" title="result_of::value_at_key<Node,Key>">tree_node::value_at_key</a><Node,Key>::type</code>.
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Constant
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Parent read-only access
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">const_node</span><span class="special">.</span><span class="identifier">get_parent_ptr</span><span class="special">()</span>
+</pre>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">Node</span><span class="special">::</span><span class="identifier">const_pointer</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Returns a pointer to the parent of the tree node, or a null pointer
+                    if the node is the root.
+                  </p>
+                </td>
+<td>
+                </td>
+<td>
+                  <p>
+                    Constant
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Parent access
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">node</span><span class="special">.</span><span class="identifier">get_parent_ptr</span><span class="special">()</span>
+</pre>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">Node</span><span class="special">::</span><span class="identifier">pointer</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Returns a pointer to the parent of the tree node, or a null pointer
+                    if the node is the root.
+                  </p>
+                </td>
+<td>
+                </td>
+<td>
+                  <p>
+                    Constant
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Children range begin read-only access
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">const_node</span><span class="special">.</span><span class="identifier">cbegin</span><span class="special">()</span>
+<span class="identifier">const_node</span><span class="special">.</span><span class="identifier">begin</span><span class="special">()</span>
+</pre>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">Node</span><span class="special">::</span><span class="identifier">const_iterator</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    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.
+                  </p>
+                </td>
+<td>
+                </td>
+<td>
+                  <p>
+                    Constant
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Children range begin access
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">node</span><span class="special">.</span><span class="identifier">begin</span><span class="special">()</span>
+</pre>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">Node</span><span class="special">::</span><span class="identifier">iterator</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    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.
+                  </p>
+                </td>
+<td>
+                </td>
+<td>
+                  <p>
+                    Constant
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Children range past-the-end read-only access
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">const_node</span><span class="special">.</span><span class="identifier">cend</span><span class="special">()</span>
+<span class="identifier">const_node</span><span class="special">.</span><span class="identifier">end</span><span class="special">()</span>
+</pre>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">Node</span><span class="special">::</span><span class="identifier">const_iterator</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Returns an iterator pointing past the end of the range of children
+                    of the tree node.
+                  </p>
+                </td>
+<td>
+                </td>
+<td>
+                  <p>
+                    Constant
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Children range past-the-end access
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">node</span><span class="special">.</span><span class="identifier">end</span><span class="special">()</span>
+</pre>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">Node</span><span class="special">::</span><span class="identifier">iterator</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Returns an iterator pointing past the end of the range of children
+                    of the tree node.
+                  </p>
+                </td>
+<td>
+                </td>
+<td>
+                  <p>
+                    Constant
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Children range size query
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">const_node</span><span class="special">.</span><span class="identifier">size</span><span class="special">()</span>
+</pre>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">Node</span><span class="special">::</span><span class="identifier">size_type</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Returns the number of children of the tree node.
+                  </p>
+                </td>
+<td>
+                </td>
+<td>
+                  <p>
+                    Linear with respect to the number of children
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Leaf node query
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">const_node</span><span class="special">.</span><span class="identifier">empty</span><span class="special">()</span>
+</pre>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">bool</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Equivalent to <code class="computeroutput"><span class="identifier">const_node</span><span class="special">.</span><span class="identifier">begin</span><span class="special">()</span> <span class="special">==</span>
+                    <span class="identifier">const_node</span><span class="special">.</span><span class="identifier">end</span><span class="special">()</span></code>,
+                    but may be more efficient in certain cases.
+                  </p>
+                </td>
+<td>
+                </td>
+<td>
+                  <p>
+                    Linear with respect to the number of children
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Remove all descendants
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">node</span><span class="special">.</span><span class="identifier">clear</span><span class="special">()</span>
+</pre>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">void</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Removes all children and their descendants from the tree node.
+                  </p>
+                </td>
+<td>
+                </td>
+<td>
+                  <p>
+                    Linear with respect to the number of children and their descendants
+                  </p>
+                </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.concepts.tree_node.models"></a><a class="link" href="tree_node.html#tree_node.concepts.tree_node.models" title="Models">Models</a>
+</h4></div></div></div>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem"><p>
+              <a class="link" href="../reference/binary_node.html" title="binary_node<T,Size,AllocatorSelector>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">binary_node</span></code></a>
+            </p></li>
+<li class="listitem"><p>
+              <a class="link" href="../reference/binary_node_base.html" title="binary_node_base<Derived,T,Selector>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">binary_node_base</span></code></a>
+            </p></li>
+<li class="listitem"><p>
+              <a class="link" href="../reference/nary_node.html" title="nary_node<T,Selector>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">nary_node</span></code></a>
+            </p></li>
+<li class="listitem"><p>
+              <a class="link" href="../reference/nary_node_base.html" title="nary_node_base<Derived,T,Selector>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">nary_node_base</span></code></a>
+            </p></li>
+<li class="listitem"><p>
+              <a class="link" href="../reference/associative_node.html" title="associative_node<Key,Data,Selector>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">associative_node</span></code></a>
+            </p></li>
+<li class="listitem"><p>
+              <a class="link" href="../reference/associative_node_base.html" title="associative_node_base<Derived,Key,Data,Selector>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">associative_node_base</span></code></a>
+            </p></li>
+<li class="listitem"><p>
+              <a class="link" href="../reference/with_accumulation.html" title="with_accumulation<BaseGenerator,T1,T2,AccumulationKey>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">with_accumulation</span></code></a>
+            </p></li>
+<li class="listitem"><p>
+              <a class="link" href="../reference/with_accumulation_base.html" title="with_accumulation_base< Derived , BaseGenerator , T1 , T2 , Key , Tag , IncludesAllDescendants , IncludesRoot , Value >"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">with_accumulation_base</span></code></a>
+            </p></li>
+<li class="listitem"><p>
+              <a class="link" href="../reference/with_count.html" title="with_count<BaseGenerator,T1,T2,Count>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">with_count</span></code></a>
+            </p></li>
+<li class="listitem"><p>
+              <a class="link" href="../reference/with_count_base.html" title="with_count_base<Derived,BaseGenerator,T1,T2,Count>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">with_count_base</span></code></a>
+            </p></li>
+<li class="listitem"><p>
+              <a class="link" href="../reference/with_height.html" title="with_height<BaseGenerator,T1,T2,Height>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">with_height</span></code></a>
+            </p></li>
+<li class="listitem"><p>
+              <a class="link" href="../reference/with_height_base.html" title="with_height_base<Derived,BaseGenerator,T1,T2,Height>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">with_height_base</span></code></a>
+            </p></li>
+<li class="listitem"><p>
+              <a class="link" href="../reference/with_position.html" title="with_position<BaseGenerator,T1,T2>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">with_position</span></code></a>
+            </p></li>
+<li class="listitem"><p>
+              <a class="link" href="../reference/with_position_base.html" title="with_position_base<Derived,BaseGenerator,T1,T2>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">with_position_base</span></code></a>
+            </p></li>
+<li class="listitem"><p>
+              <a class="link" href="../reference/with_rb_flag.html" title="with_red_black_flag<BaseGenerator,T1,T2>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">with_red_black_flag</span></code></a>
+            </p></li>
+<li class="listitem"><p>
+              <a class="link" href="../reference/with_rb_flag_base.html" title="with_red_black_flag_base<Derived,BaseGenerator,T1,T2>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">with_red_black_flag_base</span></code></a>
+            </p></li>
+</ul></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-2013 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="../concepts.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../concepts.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="copyable_tree_node.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/tree_node/libs/tree_node/doc/html/tree_node/concepts/tree_node_desc_iterator.html
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ sandbox/tree_node/libs/tree_node/doc/html/tree_node/concepts/tree_node_desc_iterator.html	2013-07-07 14:52:52 EDT (Sun, 07 Jul 2013)	(r84977)
@@ -0,0 +1,173 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Tree Node Descendant Iterator</title>
+<link rel="stylesheet" href="http://www.boost.org/doc/libs/release/doc/src/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.77.1">
+<link rel="home" href="../../index.html" title="Chapter 1. tree_node 0.5">
+<link rel="up" href="../concepts.html" title="Concepts">
+<link rel="prev" href="full_tree_node_iterator.html" title="Full Tree Node Iterator">
+<link rel="next" href="indexable_container.html" title="Indexable Container">
+</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="full_tree_node_iterator.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../concepts.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="indexable_container.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="tree_node.concepts.tree_node_desc_iterator"></a><a class="link" href="tree_node_desc_iterator.html" title="Tree Node Descendant Iterator">Tree Node
+      Descendant Iterator</a>
+</h3></div></div></div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.concepts.tree_node_desc_iterator.description"></a><a class="link" href="tree_node_desc_iterator.html#tree_node.concepts.tree_node_desc_iterator.description" title="Description">Description</a>
+</h4></div></div></div>
+<p>
+          This concept may seem redundant at first, especially when iterating through
+          <a class="link" href="non_assoc_tree_node.html" title="Non-Associative Tree Node"><span class="bold"><strong>Non-Associative
+          Tree Node</strong></span></a> objects; however, for <a class="link" href="associative_tree_node.html" title="Associative Tree Node"><span class="bold"><strong>Associative Tree Node</strong></span></a> 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.)
+        </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.concepts.tree_node_desc_iterator.refinement_of"></a><a class="link" href="tree_node_desc_iterator.html#tree_node.concepts.tree_node_desc_iterator.refinement_of" title="Refinement of">Refinement
+        of</a>
+</h4></div></div></div>
+<p>
+          <a class="link" href="tree_node_iterator.html" title="Tree Node Iterator"><span class="bold"><strong>Tree
+          Node Iterator</strong></span></a>
+        </p>
+</div>
+<div class="variablelist">
+<p class="title"><b>Notation</b></p>
+<dl class="variablelist">
+<dt><span class="term"><code class="computeroutput"><span class="identifier">Iterator</span></code></span></dt>
+<dd><p>
+              A type that models the <span class="bold"><strong>Tree Node Descendant Iterator</strong></span>
+              concept.
+            </p></dd>
+<dt><span class="term"><code class="computeroutput"><span class="identifier">itr</span></code></span></dt>
+<dd><p>
+              An object of type <code class="computeroutput"><span class="identifier">Iterator</span></code>.
+            </p></dd>
+<dt><span class="term"><code class="computeroutput"><span class="identifier">Node</span></code></span></dt>
+<dd><p>
+              A type that models the <a class="link" href="tree_node.html" title="Tree Node"><span class="bold"><strong>Tree Node</strong></span></a> concept.
+            </p></dd>
+<dt><span class="term"><code class="computeroutput"><span class="identifier">node</span></code></span></dt>
+<dd><p>
+              An object of type <code class="computeroutput"><span class="identifier">Node</span><span class="special">&</span></code>.
+            </p></dd>
+</dl>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.concepts.tree_node_desc_iterator.types"></a><a class="link" href="tree_node_desc_iterator.html#tree_node.concepts.tree_node_desc_iterator.types" title="Associated Types">Associated
+        Types</a>
+</h4></div></div></div>
+<p>
+          No additional types beyond those defined in the <a class="link" href="tree_node_iterator.html" title="Tree Node Iterator"><span class="bold"><strong>Tree Node Iterator</strong></span></a> concept; however, the
+          requirements for the value type are strengthened: it must be the appropriate
+          iterator type of <code class="computeroutput"><span class="identifier">Node</span></code>.
+        </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.concepts.tree_node_desc_iterator.expressions"></a><a class="link" href="tree_node_desc_iterator.html#tree_node.concepts.tree_node_desc_iterator.expressions" title="Valid Expressions and Semantics">Valid
+        Expressions and Semantics</a>
+</h4></div></div></div>
+<p>
+          None beyond those defined in the <a class="link" href="tree_node_iterator.html" title="Tree Node Iterator"><span class="bold"><strong>Tree Node Iterator</strong></span></a> concept; however, the
+          type requirements for the constructors are strengthened, and their semantics
+          are clarified.
+        </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+                  <p>
+                    Name
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Expression
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Type requirements
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Semantics
+                  </p>
+                </th>
+</tr></thead>
+<tbody><tr>
+<td>
+                  <p>
+                    Constructor from node
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">Iterator</span><span class="special">(</span><span class="identifier">node</span><span class="special">)</span>
+<span class="identifier">Iterator</span> <span class="identifier">itr</span><span class="special">(</span><span class="identifier">node</span><span class="special">)</span>
+</pre>
+                </td>
+<td>
+                </td>
+<td>
+                  <p>
+                    Constructs an iterator that will iterate through the descendants
+                    of the specified node.
+                  </p>
+                </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.concepts.tree_node_desc_iterator.models"></a><a class="link" href="tree_node_desc_iterator.html#tree_node.concepts.tree_node_desc_iterator.models" title="Models">Models</a>
+</h4></div></div></div>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem"><p>
+              <a class="link" href="../reference/breadth_first_desc_iter.html" title="breadth_first_descendant_iterator<Node,Selector>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">breadth_first_descendant_iterator</span></code></a>
+            </p></li>
+<li class="listitem"><p>
+              <a class="link" href="../reference/pre_order_desc_iter.html" title="pre_order_descendant_iterator<Node,IsReverse>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">pre_order_descendant_iterator</span></code></a>
+            </p></li>
+<li class="listitem"><p>
+              <a class="link" href="../reference/post_order_desc_iter.html" title="post_order_descendant_iterator<Node,IsReverse>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">post_order_descendant_iterator</span></code></a>
+            </p></li>
+<li class="listitem"><p>
+              <a class="link" href="../reference/depth_first_desc_iter.html" title="depth_first_descendant_iterator<Node,IsReverse>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">depth_first_descendant_iterator</span></code></a>
+            </p></li>
+</ul></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-2013 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="full_tree_node_iterator.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../concepts.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="indexable_container.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/tree_node/libs/tree_node/doc/html/tree_node/concepts/tree_node_iterator.html
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ sandbox/tree_node/libs/tree_node/doc/html/tree_node/concepts/tree_node_iterator.html	2013-07-07 14:52:52 EDT (Sun, 07 Jul 2013)	(r84977)
@@ -0,0 +1,262 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Tree Node Iterator</title>
+<link rel="stylesheet" href="http://www.boost.org/doc/libs/release/doc/src/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.77.1">
+<link rel="home" href="../../index.html" title="Chapter 1. tree_node 0.5">
+<link rel="up" href="../concepts.html" title="Concepts">
+<link rel="prev" href="base_type_generator.html" title="Base Type Generator">
+<link rel="next" href="full_tree_node_iterator.html" title="Full Tree Node 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="base_type_generator.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../concepts.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="full_tree_node_iterator.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="tree_node.concepts.tree_node_iterator"></a><a class="link" href="tree_node_iterator.html" title="Tree Node Iterator">Tree Node Iterator</a>
+</h3></div></div></div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.concepts.tree_node_iterator.description"></a><a class="link" href="tree_node_iterator.html#tree_node.concepts.tree_node_iterator.description" title="Description">Description</a>
+</h4></div></div></div>
+<p>
+          Tree-traversing iterators at the <a class="link" href="tree_node.html" title="Tree Node"><span class="bold"><strong>Tree Node</strong></span></a> 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.
+        </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.concepts.tree_node_iterator.refinement_of"></a><a class="link" href="tree_node_iterator.html#tree_node.concepts.tree_node_iterator.refinement_of" title="Refinement of">Refinement
+        of</a>
+</h4></div></div></div>
+<p>
+          Forward Iterator
+        </p>
+</div>
+<div class="variablelist">
+<p class="title"><b>Notation</b></p>
+<dl class="variablelist">
+<dt><span class="term"><code class="computeroutput"><span class="identifier">Iterator</span></code></span></dt>
+<dd><p>
+              A type that models the <span class="bold"><strong>Tree Node Iterator</strong></span>
+              concept.
+            </p></dd>
+<dt><span class="term"><code class="computeroutput"><span class="identifier">itr</span></code></span></dt>
+<dd><p>
+              An object of type <code class="computeroutput"><span class="identifier">Iterator</span></code>.
+            </p></dd>
+<dt><span class="term"><code class="computeroutput"><span class="identifier">Node</span></code></span></dt>
+<dd><p>
+              A type that models the <a class="link" href="tree_node.html" title="Tree Node"><span class="bold"><strong>Tree Node</strong></span></a> concept.
+            </p></dd>
+<dt><span class="term"><code class="computeroutput"><span class="identifier">node</span></code></span></dt>
+<dd><p>
+              An object of type <code class="computeroutput"><span class="identifier">Node</span><span class="special">&</span></code>.
+            </p></dd>
+</dl>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.concepts.tree_node_iterator.types"></a><a class="link" href="tree_node_iterator.html#tree_node.concepts.tree_node_iterator.types" title="Associated Types">Associated
+        Types</a>
+</h4></div></div></div>
+<p>
+          No additional types beyond those defined in the Forward Iterator concept.
+        </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.concepts.tree_node_iterator.expressions"></a><a class="link" href="tree_node_iterator.html#tree_node.concepts.tree_node_iterator.expressions" title="Valid Expressions and Semantics">Valid
+        Expressions and Semantics</a>
+</h4></div></div></div>
+<p>
+          In addition to the expressions defined in the Forward Iterator concept, the following
+          expressions must be valid.
+        </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+                  <p>
+                    Name
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Expression
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Return Type
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Semantics
+                  </p>
+                </th>
+<th>
+                  <p>
+                    <a href="http://en.wikipedia.org/wiki/Amortized_analysis" target="_top">Runtime
+                    Complexity</a>
+                  </p>
+                </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+                  <p>
+                    Default constructor
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">Iterator</span><span class="special">()</span>
+<span class="identifier">Iterator</span> <span class="identifier">itr</span>
+</pre>
+                </td>
+<td>
+                </td>
+<td>
+                  <p>
+                    Constructs a non-dereferenceable (past-the-end) iterator.
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Constant
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Constructor from node
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">Iterator</span><span class="special">(</span><span class="identifier">node</span><span class="special">)</span>
+<span class="identifier">Iterator</span> <span class="identifier">itr</span><span class="special">(</span><span class="identifier">node</span><span class="special">)</span>
+</pre>
+                </td>
+<td>
+                </td>
+<td>
+                  <p>
+                    Refinement-specific.
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Amortized constant
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Dereferenceability
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">itr</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    A type that can be used in a boolean context.
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Returns a value convertible to <code class="computeroutput"><span class="keyword">true</span></code>
+                    if <code class="computeroutput"><span class="identifier">itr</span></code> is dereferenceable,
+                    a value convertible to <code class="computeroutput"><span class="keyword">false</span></code>
+                    if it is past-the-end.
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Constant
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Node dereference
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><a class="link" href="../reference/dereference_iterator.html" title="dereference_iterator()">tree_node::dereference_iterator</a><span class="special">(</span><span class="identifier">itr</span><span class="special">)</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">Node</span><span class="special">&</span></code>
+                    or <code class="computeroutput"><span class="identifier">Node</span> <span class="keyword">const</span><span class="special">&</span></code>, depending on the mutability
+                    of <code class="computeroutput"><span class="identifier">itr</span></code>.
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Returns a reference to the <a class="link" href="tree_node.html" title="Tree Node"><span class="bold"><strong>Tree Node</strong></span></a> to which <code class="computeroutput"><span class="identifier">itr</span></code> currently points.
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Constant
+                  </p>
+                </td>
+</tr>
+</tbody>
+</table></div>
+<p>
+          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.
+        </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.concepts.tree_node_iterator.models"></a><a class="link" href="tree_node_iterator.html#tree_node.concepts.tree_node_iterator.models" title="Models">Models</a>
+</h4></div></div></div>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem"><p>
+              All models of the <a class="link" href="full_tree_node_iterator.html" title="Full Tree Node Iterator"><span class="bold"><strong>Full Tree Node Iterator</strong></span></a> concept.
+            </p></li>
+<li class="listitem"><p>
+              All models of the <a class="link" href="tree_node_desc_iterator.html" title="Tree Node Descendant Iterator"><span class="bold"><strong>Tree Node Descendant Iterator</strong></span></a> concept.
+            </p></li>
+</ul></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-2013 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="base_type_generator.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../concepts.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="full_tree_node_iterator.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference.html
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference.html	2013-07-07 14:52:52 EDT (Sun, 07 Jul 2013)	(r84977)
@@ -0,0 +1,409 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>Reference</title>
+<link rel="stylesheet" href="http://www.boost.org/doc/libs/release/doc/src/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.77.1">
+<link rel="home" href="../index.html" title="Chapter 1. tree_node 0.5">
+<link rel="up" href="../index.html" title="Chapter 1. tree_node 0.5">
+<link rel="prev" href="concepts/indexable_iterator.html" title="Indexable Iterator">
+<link rel="next" href="reference/binode_container.html" title="binode_container<NodeGenerator,T,Balancer>">
+</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="concepts/indexable_iterator.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="reference/binode_container.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h2 class="title" style="clear: both">
+<a name="tree_node.reference"></a><a class="link" href="reference.html" title="Reference">Reference</a>
+</h2></div></div></div>
+<h4>
+<a name="tree_node.reference.h0"></a>
+      <span class="phrase"><a name="tree_node.reference.container_types"></a></span><a class="link" href="reference.html#tree_node.reference.container_types">Container
+      Types</a>
+    </h4>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem"><p>
+          <a class="link" href="reference/binode_container.html" title="binode_container<NodeGenerator,T,Balancer>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">binode_container</span></code></a>
+        </p></li>
+<li class="listitem"><p>
+          <a class="link" href="reference/binode_assoc_container.html" title="binode_associative_container< NodeGenerator , T1 , T2 , IsMultipleAssociative , CompareSelector , Balancer >"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">binode_associative_container</span></code></a>
+        </p></li>
+<li class="listitem"><p>
+          <a class="link" href="reference/binode_set.html" title="binode_set<NodeGenerator,T,CompareSelector,Balancer>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">binode_set</span></code></a>
+        </p></li>
+<li class="listitem"><p>
+          <a class="link" href="reference/binode_multiset.html" title="binode_multiset<NodeGenerator,T,CompareSelector,Balancer>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">binode_multiset</span></code></a>
+        </p></li>
+<li class="listitem"><p>
+          <a class="link" href="reference/binode_map.html" title="binode_map<NodeGenerator,Key,Mapped,CompareSelector,Balancer>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">binode_map</span></code></a>
+        </p></li>
+<li class="listitem"><p>
+          <a class="link" href="reference/binode_multimap.html" title="binode_multimap<NodeGenerator,Key,Mapped,CompareSelector,Balancer>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">binode_multimap</span></code></a>
+        </p></li>
+</ul></div>
+<h4>
+<a name="tree_node.reference.h1"></a>
+      <span class="phrase"><a name="tree_node.reference.balancer_types"></a></span><a class="link" href="reference.html#tree_node.reference.balancer_types">Balancer
+      Types</a>
+    </h4>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem"><p>
+          <a class="link" href="reference/null_balancer.html" title="null_balancer"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">null_balancer</span></code></a>
+        </p></li>
+<li class="listitem"><p>
+          <a class="link" href="reference/red_black_balancer.html" title="red_black_balancer"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">red_black_balancer</span></code></a>
+        </p></li>
+<li class="listitem"><p>
+          <a class="link" href="reference/avl_balancer.html" title="adelson_velskii_landis_balancer"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">adelson_velskii_landis_balancer</span></code></a>
+        </p></li>
+</ul></div>
+<h4>
+<a name="tree_node.reference.h2"></a>
+      <span class="phrase"><a name="tree_node.reference.node_types"></a></span><a class="link" href="reference.html#tree_node.reference.node_types">Node
+      Types</a>
+    </h4>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem"><p>
+          <a class="link" href="reference/binary_node.html" title="binary_node<T,Size,AllocatorSelector>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">binary_node</span></code></a>
+        </p></li>
+<li class="listitem"><p>
+          <a class="link" href="reference/nary_node.html" title="nary_node<T,Selector>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">nary_node</span></code></a>
+        </p></li>
+<li class="listitem"><p>
+          <a class="link" href="reference/associative_node.html" title="associative_node<Key,Data,Selector>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">associative_node</span></code></a>
+        </p></li>
+</ul></div>
+<h4>
+<a name="tree_node.reference.h3"></a>
+      <span class="phrase"><a name="tree_node.reference.adaptor_types"></a></span><a class="link" href="reference.html#tree_node.reference.adaptor_types">Adaptor
+      Types</a>
+    </h4>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem"><p>
+          <a class="link" href="reference/with_accumulation.html" title="with_accumulation<BaseGenerator,T1,T2,AccumulationKey>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">with_accumulation</span></code></a>
+        </p></li>
+<li class="listitem"><p>
+          <a class="link" href="reference/with_count.html" title="with_count<BaseGenerator,T1,T2,Count>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">with_count</span></code></a>
+        </p></li>
+<li class="listitem"><p>
+          <a class="link" href="reference/with_height.html" title="with_height<BaseGenerator,T1,T2,Height>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">with_height</span></code></a>
+        </p></li>
+<li class="listitem"><p>
+          <a class="link" href="reference/with_position.html" title="with_position<BaseGenerator,T1,T2>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">with_position</span></code></a>
+        </p></li>
+<li class="listitem"><p>
+          <a class="link" href="reference/with_rb_flag.html" title="with_red_black_flag<BaseGenerator,T1,T2>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">with_red_black_flag</span></code></a>
+        </p></li>
+</ul></div>
+<h4>
+<a name="tree_node.reference.h4"></a>
+      <span class="phrase"><a name="tree_node.reference.base_types"></a></span><a class="link" href="reference.html#tree_node.reference.base_types">Base
+      Types</a>
+    </h4>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem"><p>
+          <a class="link" href="reference/binary_node_base.html" title="binary_node_base<Derived,T,Selector>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">binary_node_base</span></code></a>
+        </p></li>
+<li class="listitem"><p>
+          <a class="link" href="reference/nary_node_base.html" title="nary_node_base<Derived,T,Selector>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">nary_node_base</span></code></a>
+        </p></li>
+<li class="listitem"><p>
+          <a class="link" href="reference/associative_node_base.html" title="associative_node_base<Derived,Key,Data,Selector>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">associative_node_base</span></code></a>
+        </p></li>
+<li class="listitem"><p>
+          <a class="link" href="reference/with_accumulation_base.html" title="with_accumulation_base< Derived , BaseGenerator , T1 , T2 , Key , Tag , IncludesAllDescendants , IncludesRoot , Value >"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">with_accumulation_base</span></code></a>
+        </p></li>
+<li class="listitem"><p>
+          <a class="link" href="reference/with_count_base.html" title="with_count_base<Derived,BaseGenerator,T1,T2,Count>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">with_count_base</span></code></a>
+        </p></li>
+<li class="listitem"><p>
+          <a class="link" href="reference/with_height_base.html" title="with_height_base<Derived,BaseGenerator,T1,T2,Height>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">with_height_base</span></code></a>
+        </p></li>
+<li class="listitem"><p>
+          <a class="link" href="reference/with_position_base.html" title="with_position_base<Derived,BaseGenerator,T1,T2>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">with_position_base</span></code></a>
+        </p></li>
+<li class="listitem"><p>
+          <a class="link" href="reference/with_rb_flag_base.html" title="with_red_black_flag_base<Derived,BaseGenerator,T1,T2>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">with_red_black_flag_base</span></code></a>
+        </p></li>
+<li class="listitem"><p>
+          <a class="link" href="reference/tree_node_base.html" title="tree_node_base<Derived>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">tree_node_base</span></code></a>
+        </p></li>
+</ul></div>
+<h4>
+<a name="tree_node.reference.h5"></a>
+      <span class="phrase"><a name="tree_node.reference.type_generators"></a></span><a class="link" href="reference.html#tree_node.reference.type_generators">Type
+      Generators</a>
+    </h4>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem"><p>
+          <a class="link" href="reference/binary_node_gen.html" title="binary_node_gen<Size,AllocatorSelector>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">binary_node_gen</span></code></a>
+        </p></li>
+<li class="listitem"><p>
+          <a class="link" href="reference/binary_node_base_gen.html" title="binary_node_base_gen<Size,AllocatorSelector>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">binary_node_base_gen</span></code></a>
+        </p></li>
+<li class="listitem"><p>
+          <a class="link" href="reference/nary_node_gen.html" title="nary_node_gen<Selector>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">nary_node_gen</span></code></a>
+        </p></li>
+<li class="listitem"><p>
+          <a class="link" href="reference/nary_node_base_gen.html" title="nary_node_base_gen<Selector>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">nary_node_base_gen</span></code></a>
+        </p></li>
+<li class="listitem"><p>
+          <a class="link" href="reference/associative_node_gen.html" title="associative_node_gen<Selector>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">associative_node_gen</span></code></a>
+        </p></li>
+<li class="listitem"><p>
+          <a class="link" href="reference/assoc_node_base_gen.html" title="associative_node_base_gen<Selector>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">associative_node_base_gen</span></code></a>
+        </p></li>
+<li class="listitem"><p>
+          <a class="link" href="reference/with_accumulation_gen.html" title="with_accumulation_gen<BaseGenerator>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">with_accumulation_gen</span></code></a>
+        </p></li>
+<li class="listitem"><p>
+          <a class="link" href="reference/with_accumulation_base_gen.html" title="with_accumulation_base_gen<BaseGenerator>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">with_accumulation_base_gen</span></code></a>
+        </p></li>
+<li class="listitem"><p>
+          <a class="link" href="reference/with_count_gen.html" title="with_count_gen<BaseGenerator>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">with_count_gen</span></code></a>
+        </p></li>
+<li class="listitem"><p>
+          <a class="link" href="reference/with_count_base_gen.html" title="with_count_base_gen<BaseGenerator>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">with_count_base_gen</span></code></a>
+        </p></li>
+<li class="listitem"><p>
+          <a class="link" href="reference/with_height_gen.html" title="with_height_gen<BaseGenerator>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">with_height_gen</span></code></a>
+        </p></li>
+<li class="listitem"><p>
+          <a class="link" href="reference/with_height_base_gen.html" title="with_height_base_gen<BaseGenerator>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">with_height_base_gen</span></code></a>
+        </p></li>
+<li class="listitem"><p>
+          <a class="link" href="reference/with_position_gen.html" title="with_position_gen<BaseGenerator>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">with_position_gen</span></code></a>
+        </p></li>
+<li class="listitem"><p>
+          <a class="link" href="reference/with_position_base_gen.html" title="with_position_base_gen<BaseGenerator>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">with_position_base_gen</span></code></a>
+        </p></li>
+<li class="listitem"><p>
+          <a class="link" href="reference/with_rb_flag_gen.html" title="with_red_black_flag_gen<BaseGenerator>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">with_red_black_flag_gen</span></code></a>
+        </p></li>
+<li class="listitem"><p>
+          <a class="link" href="reference/with_rb_flag_base_gen.html" title="with_red_black_flag_base_gen<BaseGenerator>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">with_red_black_flag_base_gen</span></code></a>
+        </p></li>
+</ul></div>
+<h4>
+<a name="tree_node.reference.h6"></a>
+      <span class="phrase"><a name="tree_node.reference.iterator_types"></a></span><a class="link" href="reference.html#tree_node.reference.iterator_types">Iterator
+      Types</a>
+    </h4>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem"><p>
+          <a class="link" href="reference/breadth_first_iterator.html" title="breadth_first_iterator<Node,Selector>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">breadth_first_iterator</span></code></a>
+        </p></li>
+<li class="listitem"><p>
+          <a class="link" href="reference/breadth_first_desc_iter.html" title="breadth_first_descendant_iterator<Node,Selector>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">breadth_first_descendant_iterator</span></code></a>
+        </p></li>
+<li class="listitem"><p>
+          <a class="link" href="reference/pre_order_iterator.html" title="pre_order_iterator<Node,IsReverse>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">pre_order_iterator</span></code></a>
+        </p></li>
+<li class="listitem"><p>
+          <a class="link" href="reference/pre_order_desc_iter.html" title="pre_order_descendant_iterator<Node,IsReverse>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">pre_order_descendant_iterator</span></code></a>
+        </p></li>
+<li class="listitem"><p>
+          <a class="link" href="reference/post_order_iterator.html" title="post_order_iterator<Node,IsReverse>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">post_order_iterator</span></code></a>
+        </p></li>
+<li class="listitem"><p>
+          <a class="link" href="reference/post_order_desc_iter.html" title="post_order_descendant_iterator<Node,IsReverse>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">post_order_descendant_iterator</span></code></a>
+        </p></li>
+<li class="listitem"><p>
+          <a class="link" href="reference/in_order_iterator.html" title="in_order_iterator<Node,IsReverse>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">in_order_iterator</span></code></a>
+        </p></li>
+<li class="listitem"><p>
+          <a class="link" href="reference/depth_first_iterator.html" title="depth_first_iterator<Node,IsReverse>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">depth_first_iterator</span></code></a>
+        </p></li>
+<li class="listitem"><p>
+          <a class="link" href="reference/depth_first_desc_iter.html" title="depth_first_descendant_iterator<Node,IsReverse>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">depth_first_descendant_iterator</span></code></a>
+        </p></li>
+</ul></div>
+<h4>
+<a name="tree_node.reference.h7"></a>
+      <span class="phrase"><a name="tree_node.reference.selector_types"></a></span><a class="link" href="reference.html#tree_node.reference.selector_types">Selector
+      Types</a>
+    </h4>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>
+          <a class="link" href="reference/compare_selector.html" title="compare_selector<Key>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">compare_selector</span></code></a>
+        </p></li></ul></div>
+<h4>
+<a name="tree_node.reference.h8"></a>
+      <span class="phrase"><a name="tree_node.reference.enum_types"></a></span><a class="link" href="reference.html#tree_node.reference.enum_types">Enum
+      Types</a>
+    </h4>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; "><li class="listitem"><p>
+          <a class="link" href="reference/traversal_state.html" title="traversal_state"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">traversal_state</span></code></a>
+        </p></li></ul></div>
+<h4>
+<a name="tree_node.reference.h9"></a>
+      <span class="phrase"><a name="tree_node.reference.key_types"></a></span><a class="link" href="reference.html#tree_node.reference.key_types">Key
+      Types</a>
+    </h4>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem"><p>
+          <a class="link" href="reference/data_key.html" title="data_key"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">data_key</span></code></a>
+        </p></li>
+<li class="listitem"><p>
+          <a class="link" href="reference/accumulation_key.html" title="accumulation_key"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">accumulation_key</span></code></a>
+        </p></li>
+<li class="listitem"><p>
+          <a class="link" href="reference/count_key.html" title="count_key"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">count_key</span></code></a>
+        </p></li>
+<li class="listitem"><p>
+          <a class="link" href="reference/height_key.html" title="height_key"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">height_key</span></code></a>
+        </p></li>
+<li class="listitem"><p>
+          <a class="link" href="reference/position_key.html" title="position_key"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">position_key</span></code></a>
+        </p></li>
+<li class="listitem"><p>
+          <a class="link" href="reference/red_black_flag_key.html" title="red_flag_key and black_flag_key"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">red_flag_key</span></code></a>
+        </p></li>
+<li class="listitem"><p>
+          <a class="link" href="reference/red_black_flag_key.html" title="red_flag_key and black_flag_key"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">black_flag_key</span></code></a>
+        </p></li>
+</ul></div>
+<h4>
+<a name="tree_node.reference.h10"></a>
+      <span class="phrase"><a name="tree_node.reference.algorithms"></a></span><a class="link" href="reference.html#tree_node.reference.algorithms">Algorithms</a>
+    </h4>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem"><p>
+          <a class="link" href="reference/advance_binary.html" title="advance_binary()"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">advance_binary</span><span class="special">()</span></code></a>
+        </p></li>
+<li class="listitem"><p>
+          <a class="link" href="reference/binary_index_of.html" title="binary_index_of()"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">binary_index_of</span><span class="special">()</span></code></a>
+        </p></li>
+<li class="listitem"><p>
+          <a class="link" href="reference/binary_descendant.html" title="binary_descendant()"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">binary_descendant</span><span class="special">()</span></code></a>
+        </p></li>
+<li class="listitem"><p>
+          <a class="link" href="reference/binary_descendant_at_index.html" title="binary_descendant_at_index()"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">binary_descendant_at_index</span><span class="special">()</span></code></a>
+        </p></li>
+<li class="listitem"><p>
+          <a class="link" href="reference/binary_lower_bound.html" title="binary_lower_bound()"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">binary_lower_bound</span><span class="special">()</span></code></a>
+        </p></li>
+<li class="listitem"><p>
+          <a class="link" href="reference/binary_upper_bound.html" title="binary_upper_bound()"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">binary_upper_bound</span><span class="special">()</span></code></a>
+        </p></li>
+<li class="listitem"><p>
+          <a class="link" href="reference/cartesian_sort.html" title="cartesian_sort()"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">cartesian_sort</span><span class="special">()</span></code></a>
+        </p></li>
+<li class="listitem"><p>
+          <a class="link" href="reference/cartesian_sort_range.html" title="cartesian_sort_range()"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">cartesian_sort_range</span><span class="special">()</span></code></a>
+        </p></li>
+</ul></div>
+<h4>
+<a name="tree_node.reference.h11"></a>
+      <span class="phrase"><a name="tree_node.reference.intrinsic_functions"></a></span><a class="link" href="reference.html#tree_node.reference.intrinsic_functions">Intrinsic
+      Functions</a>
+    </h4>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem"><p>
+          <a class="link" href="reference/dereference_iterator.html" title="dereference_iterator()"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">dereference_iterator</span><span class="special">()</span></code></a>
+        </p></li>
+<li class="listitem"><p>
+          <a class="link" href="reference/get_properties.html" title="get_properties()"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">get_properties</span><span class="special">()</span></code></a>
+        </p></li>
+<li class="listitem"><p>
+          <a class="link" href="reference/has_key.html" title="has_key()"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">has_key</span><span class="special">()</span></code></a>
+        </p></li>
+<li class="listitem"><p>
+          <a class="link" href="reference/at_key.html" title="at_key<Key>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">at_key</span></code></a>
+        </p></li>
+</ul></div>
+<h4>
+<a name="tree_node.reference.h12"></a>
+      <span class="phrase"><a name="tree_node.reference.metafunctions"></a></span><a class="link" href="reference.html#tree_node.reference.metafunctions">Metafunctions</a>
+    </h4>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem"><p>
+          <a class="link" href="reference/dereference_iterator.html#tree_node.reference.dereference_iterator.result_of" title="Return Type Metafunction Synopsis"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">result_of</span><span class="special">::</span><span class="identifier">dereference_iterator</span><span class="special"><></span></code></a>
+        </p></li>
+<li class="listitem"><p>
+          <a class="link" href="reference/get_properties.html#tree_node.reference.get_properties.result_of" title="Return Type Metafunction Synopsis"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">result_of</span><span class="special">::</span><span class="identifier">get_properties</span><span class="special"><></span></code></a>
+        </p></li>
+<li class="listitem"><p>
+          <a class="link" href="reference/has_key.html#tree_node.reference.has_key.result_of" title="Return Type Metafunction Synopsis"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">result_of</span><span class="special">::</span><span class="identifier">has_key</span><span class="special"><></span></code></a>
+        </p></li>
+<li class="listitem"><p>
+          <a class="link" href="reference/get_keys.html" title="result_of::get_keys<Node>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">result_of</span><span class="special">::</span><span class="identifier">get_keys</span><span class="special"><></span></code></a>
+        </p></li>
+<li class="listitem"><p>
+          <a class="link" href="reference/at_key.html#tree_node.reference.at_key.result_of" title="Return Type Metafunction Synopsis"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">result_of</span><span class="special">::</span><span class="identifier">at_key</span><span class="special"><></span></code></a>
+        </p></li>
+<li class="listitem"><p>
+          <a class="link" href="reference/value_at_key.html" title="result_of::value_at_key<Node,Key>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">result_of</span><span class="special">::</span><span class="identifier">value_at_key</span><span class="special"><></span></code></a>
+        </p></li>
+</ul></div>
+<h4>
+<a name="tree_node.reference.h13"></a>
+      <span class="phrase"><a name="tree_node.reference.boilerplate_macros"></a></span><a class="link" href="reference.html#tree_node.reference.boilerplate_macros">Boilerplate
+      Macros</a>
+    </h4>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem"><p>
+          <a class="link" href="reference/copyable_and_movable.html" title="BOOST_TREE_NODE_COPYABLE_AND_MOVABLE"><code class="computeroutput"><span class="identifier">BOOST_TREE_NODE_COPYABLE_AND_MOVABLE</span></code></a>
+        </p></li>
+<li class="listitem"><p>
+          <a class="link" href="reference/container_derived_body.html" title="BOOST_TREE_NODE_CONTAINER_DERIVED_BODY"><code class="computeroutput"><span class="identifier">BOOST_TREE_NODE_CONTAINER_DERIVED_BODY</span></code></a>
+        </p></li>
+<li class="listitem"><p>
+          <a class="link" href="reference/assoc_cont_derived_body.html" title="BOOST_TREE_NODE_ASSOCIATIVE_CONTAINER_DERIVED_BODY"><code class="computeroutput"><span class="identifier">BOOST_TREE_NODE_ASSOCIATIVE_CONTAINER_DERIVED_BODY</span></code></a>
+        </p></li>
+</ul></div>
+<h4>
+<a name="tree_node.reference.h14"></a>
+      <span class="phrase"><a name="tree_node.reference.workaround_macros"></a></span><a class="link" href="reference.html#tree_node.reference.workaround_macros">Workaround
+      Macros</a>
+    </h4>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem"><p>
+          <a class="link" href="reference/emplace_ctor_fwd_decl.html" title="BOOST_TREE_NODE_EMPLACEMENT_CTOR_FWD_DECL"><code class="computeroutput"><span class="identifier">BOOST_TREE_NODE_EMPLACEMENT_CTOR_FWD_DECL</span></code></a>
+        </p></li>
+<li class="listitem"><p>
+          <a class="link" href="reference/emplace_ctor_inline_hdr.html" title="BOOST_TREE_NODE_EMPLACEMENT_CTOR_INLINE_HDR"><code class="computeroutput"><span class="identifier">BOOST_TREE_NODE_EMPLACEMENT_CTOR_INLINE_HEADER</span></code></a>
+        </p></li>
+<li class="listitem"><p>
+          <a class="link" href="reference/emplace_ctor_inline_def.html" title="BOOST_TREE_NODE_EMPLACEMENT_CTOR_INLINE_DEF"><code class="computeroutput"><span class="identifier">BOOST_TREE_NODE_EMPLACEMENT_CTOR_INLINE_DEF</span></code></a>
+        </p></li>
+<li class="listitem"><p>
+          <a class="link" href="reference/emplace_ctor_w_alloc_f_dcl.html" title="BOOST_TREE_NODE_EMPLACEMENT_CTOR_W_ALLOC_FWD_DECL"><code class="computeroutput"><span class="identifier">BOOST_TREE_NODE_EMPLACEMENT_CTOR_W_ALLOC_FWD_DECL</span></code></a>
+        </p></li>
+<li class="listitem"><p>
+          <a class="link" href="reference/emplace_ctor_w_alloc_i_hdr.html" title="BOOST_TREE_NODE_EMPLACEMENT_CTOR_W_ALLOC_INLINE_HEADER"><code class="computeroutput"><span class="identifier">BOOST_TREE_NODE_EMPLACEMENT_CTOR_W_ALLOC_INLINE_HEADER</span></code></a>
+        </p></li>
+<li class="listitem"><p>
+          <a class="link" href="reference/emplace_ctor_w_alloc_i_def.html" title="BOOST_TREE_NODE_EMPLACEMENT_CTOR_W_ALLOC_INLINE_DEF"><code class="computeroutput"><span class="identifier">BOOST_TREE_NODE_EMPLACEMENT_CTOR_W_ALLOC_INLINE_DEF</span></code></a>
+        </p></li>
+</ul></div>
+<h4>
+<a name="tree_node.reference.h15"></a>
+      <span class="phrase"><a name="tree_node.reference.feature_querying_macros"></a></span><a class="link" href="reference.html#tree_node.reference.feature_querying_macros">Feature
+      Querying Macros</a>
+    </h4>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem"><p>
+          <a class="link" href="reference/can_use_fusion.html" title="BOOST_TREE_NODE_CAN_USE_FUSION"><code class="computeroutput"><span class="identifier">BOOST_TREE_NODE_CAN_USE_FUSION</span></code></a>
+        </p></li>
+<li class="listitem"><p>
+          <a class="link" href="reference/can_use_fusion_with_typeof.html" title="BOOST_TREE_NODE_CAN_USE_FUSION_WITH_TYPEOF"><code class="computeroutput"><span class="identifier">BOOST_TREE_NODE_CAN_USE_FUSION_WITH_TYPEOF</span></code></a>
+        </p></li>
+</ul></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-2013 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="concepts/indexable_iterator.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../index.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../index.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="reference/binode_container.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/accumulation_key.html
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/accumulation_key.html	2013-07-07 14:52:52 EDT (Sun, 07 Jul 2013)	(r84977)
@@ -0,0 +1,240 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>accumulation_key</title>
+<link rel="stylesheet" href="http://www.boost.org/doc/libs/release/doc/src/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.77.1">
+<link rel="home" href="../../index.html" title="Chapter 1. tree_node 0.5">
+<link rel="up" href="../reference.html" title="Reference">
+<link rel="prev" href="data_key.html" title="data_key">
+<link rel="next" href="count_key.html" title="count_key">
+</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="data_key.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="count_key.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="tree_node.reference.accumulation_key"></a><a class="link" href="accumulation_key.html" title="accumulation_key"><code class="computeroutput"><span class="identifier">accumulation_key</span></code></a>
+</h3></div></div></div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.accumulation_key.synopsis"></a><a class="link" href="accumulation_key.html#tree_node.reference.accumulation_key.synopsis" title="Synopsis">Synopsis</a>
+</h4></div></div></div>
+<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="identifier">data_key</span>
+      <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Tag</span> <span class="special">=</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">accumulators</span><span class="special">::</span><span class="identifier">tag</span><span class="special">::</span><span class="identifier">sum</span>
+      <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">IncludesAllDescendants</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">true_</span>
+      <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">IncludesRoot</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">true_</span>
+      <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Value</span> <span class="special">=</span> <span class="keyword">void</span>
+    <span class="special">></span>
+    <span class="keyword">struct</span> <span class="identifier">accumulation_key</span>
+    <span class="special">{</span>
+        <span class="keyword">typedef</span> <span class="identifier">Key</span> <span class="identifier">key</span><span class="special">;</span>
+        <span class="keyword">typedef</span> <span class="identifier">Tag</span> <span class="identifier">tag</span><span class="special">;</span>
+        <span class="keyword">typedef</span> <span class="identifier">IncludesAllDescendants</span> <span class="identifier">includes_all_descendants</span><span class="special">;</span>
+        <span class="keyword">typedef</span> <span class="identifier">IncludesRoot</span> <span class="identifier">includes_root</span><span class="special">;</span>
+        <span class="keyword">typedef</span> <span class="identifier">Value</span> <span class="identifier">value</span><span class="special">;</span>
+    <span class="special">};</span>
+
+    <span class="keyword">typedef</span> <span class="identifier">accumulation_key</span><span class="special"><></span> <span class="identifier">default_accumulation_key</span><span class="special">;</span>
+<span class="special">}}</span>  <span class="comment">// namespace boost::tree_node</span>
+</pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.accumulation_key.description"></a><a class="link" href="accumulation_key.html#tree_node.reference.accumulation_key.description" title="Description">Description</a>
+</h4></div></div></div>
+<p>
+          Use this type to access statistical data stored in <a class="link" href="../concepts/tree_node.html" title="Tree Node"><span class="bold"><strong>Tree Node</strong></span></a> objects of types ultimately inheriting
+          from <a class="link" href="with_accumulation_base.html" title="with_accumulation_base< Derived , BaseGenerator , T1 , T2 , Key , Tag , IncludesAllDescendants , IncludesRoot , Value >"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">with_accumulation_base</span></code></a>.
+        </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.accumulation_key.definition"></a><a class="link" href="accumulation_key.html#tree_node.reference.accumulation_key.definition" title="Where defined">Where
+        defined</a>
+</h4></div></div></div>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span>boost/tree_node/key/accumulation.hpp<span class="special">></span>
+</pre>
+<p>
+          To register under Boost.Typeof:
+        </p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span>boost/typeof/boost/tree_node/key/accumulation.hpp<span class="special">></span>
+</pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.accumulation_key.tpl_param"></a><a class="link" href="accumulation_key.html#tree_node.reference.accumulation_key.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 used to access the data to be accumulated.
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="literal"><a class="link" href="has_key.html#tree_node.reference.has_key.result_of" title="Return Type Metafunction Synopsis">tree_node::result_of::has_key</a><Node,Key></code>
+                    must evaluate to boost::mpl::true_ for some <code class="computeroutput"><span class="identifier">Node</span> <span class="identifier">node</span></code>
+                    storing the desired data.
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <a class="link" href="data_key.html" title="data_key"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">data_key</span></code></a>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">Tag</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    The type of the actual computation.
+                  </p>
+                </td>
+<td>
+                  <p>
+                    It must be a valid Boost.Accumulators feature.
+                  </p>
+                </td>
+<td>
+                  <p>
+                    boost::accumulators::tag::sum
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">IncludesAllDescendants</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Configures the <a class="link" href="with_accumulation_base.html" title="with_accumulation_base< Derived , BaseGenerator , T1 , T2 , Key , Tag , IncludesAllDescendants , IncludesRoot , Value >"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">with_accumulation_base</span></code></a>
+                    to include all descendants of a target node for statistical evaluation
+                    if set to boost::mpl::true_; otherwise, only
+                    the node's immediate children will be included.
+                  </p>
+                </td>
+<td>
+                  <p>
+                    It must model the Boolean Integral Constant concept.
+                  </p>
+                </td>
+<td>
+                  <p>
+                    boost::mpl::true_
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">IncludesRoot</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Configures the <a class="link" href="with_accumulation_base.html" title="with_accumulation_base< Derived , BaseGenerator , T1 , T2 , Key , Tag , IncludesAllDescendants , IncludesRoot , Value >"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">with_accumulation_base</span></code></a>
+                    to include a target node along with its children/descendants
+                    for statistical evaluation if set to boost::mpl::true_; otherwise, the
+                    node will be excluded from evaluation.
+                  </p>
+                </td>
+<td>
+                  <p>
+                    It must model the Boolean Integral Constant concept.
+                  </p>
+                </td>
+<td>
+                  <p>
+                    boost::mpl::true_
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">Value</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    The type of the accumulated result. If left unspecified, the
+                    <a class="link" href="with_accumulation_base.html" title="with_accumulation_base< Derived , BaseGenerator , T1 , T2 , Key , Tag , IncludesAllDescendants , IncludesRoot , Value >"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">with_accumulation_base</span></code></a>
+                    will use the type of the data to be accumulated.
+                  </p>
+                </td>
+<td>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">void</span></code>
+                  </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-2013 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="data_key.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="count_key.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/advance_binary.html
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/advance_binary.html	2013-07-07 14:52:52 EDT (Sun, 07 Jul 2013)	(r84977)
@@ -0,0 +1,71 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>advance_binary()</title>
+<link rel="stylesheet" href="http://www.boost.org/doc/libs/release/doc/src/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.77.1">
+<link rel="home" href="../../index.html" title="Chapter 1. tree_node 0.5">
+<link rel="up" href="../reference.html" title="Reference">
+<link rel="prev" href="red_black_flag_key.html" title="red_flag_key and black_flag_key">
+<link rel="next" href="binary_index_of.html" title="binary_index_of()">
+</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="red_black_flag_key.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="binary_index_of.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="tree_node.reference.advance_binary"></a><a class="link" href="advance_binary.html" title="advance_binary()"><code class="computeroutput"><span class="identifier">advance_binary</span><span class="special">()</span></code></a>
+</h3></div></div></div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.advance_binary.synopsis"></a><a class="link" href="advance_binary.html#tree_node.reference.advance_binary.synopsis" title="Synopsis">Synopsis</a>
+</h4></div></div></div>
+<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">Difference</span><span class="special">></span>
+    <span class="identifier">NodePointer</span>
+        <span class="identifier">advance_binary</span><span class="special">(</span>
+            <span class="identifier">NodePointer</span> <span class="identifier">node_ptr</span>
+          <span class="special">,</span> <span class="identifier">Difference</span> <span class="identifier">difference</span>
+          <span class="special">,</span> <span class="identifier">NodePointer</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">root_ptr</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">Difference</span><span class="special">></span>
+    <span class="identifier">NodePointer</span> <span class="identifier">advance_binary</span><span class="special">(</span><span class="identifier">NodePointer</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">Difference</span> <span class="identifier">difference</span><span class="special">);</span>
+<span class="special">}}</span>  <span class="comment">// namespace boost::tree_node</span>
+</pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.advance_binary.description"></a><a class="link" href="advance_binary.html#tree_node.reference.advance_binary.description" title="Description">Description</a>
+</h4></div></div></div>
+<p>
+          TODO.
+        </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.advance_binary.definition"></a><a class="link" href="advance_binary.html#tree_node.reference.advance_binary.definition" title="Where defined">Where
+        defined</a>
+</h4></div></div></div>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span>boost/tree_node/algorithm/advance_binary.hpp<span class="special">></span>
+</pre>
+</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-2013 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="red_black_flag_key.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="binary_index_of.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/assoc_cont_derived_body.html
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/assoc_cont_derived_body.html	2013-07-07 14:52:52 EDT (Sun, 07 Jul 2013)	(r84977)
@@ -0,0 +1,97 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>BOOST_TREE_NODE_ASSOCIATIVE_CONTAINER_DERIVED_BODY</title>
+<link rel="stylesheet" href="http://www.boost.org/doc/libs/release/doc/src/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.77.1">
+<link rel="home" href="../../index.html" title="Chapter 1. tree_node 0.5">
+<link rel="up" href="../reference.html" title="Reference">
+<link rel="prev" href="container_derived_body.html" title="BOOST_TREE_NODE_CONTAINER_DERIVED_BODY">
+<link rel="next" href="emplace_ctor_fwd_decl.html" title="BOOST_TREE_NODE_EMPLACEMENT_CTOR_FWD_DECL">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr><td valign="top"><img alt="C++ Boost" width="277" height="86" src="../../../../../../boost.png"></td></tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="container_derived_body.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="emplace_ctor_fwd_decl.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="tree_node.reference.assoc_cont_derived_body"></a><a class="link" href="assoc_cont_derived_body.html" title="BOOST_TREE_NODE_ASSOCIATIVE_CONTAINER_DERIVED_BODY"><code class="computeroutput"><span class="identifier">BOOST_TREE_NODE_ASSOCIATIVE_CONTAINER_DERIVED_BODY</span></code>
+      </a>
+</h3></div></div></div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.assoc_cont_derived_body.synopsis"></a><a class="link" href="assoc_cont_derived_body.html#tree_node.reference.assoc_cont_derived_body.synopsis" title="Synopsis">Synopsis</a>
+</h4></div></div></div>
+<pre class="programlisting"><span class="preprocessor">#define</span> <span class="identifier">BOOST_TREE_NODE_ASSOCIATIVE_CONTAINER_DERIVED_BODY</span><span class="special">(</span><span class="identifier">Derived</span><span class="special">,</span> <span class="identifier">Base</span><span class="special">)</span>    <span class="special">\</span>
+        <span class="keyword">typedef</span> <span class="keyword">typename</span> <span class="identifier">Base</span><span class="special">::</span><span class="identifier">key_type</span> <span class="identifier">key_type</span><span class="special">;</span>                            <span class="special">\</span>
+        <span class="keyword">typedef</span> <span class="keyword">typename</span> <span class="identifier">Base</span><span class="special">::</span><span class="identifier">value_type</span> <span class="identifier">value_type</span><span class="special">;</span>                        <span class="special">\</span>
+        <span class="keyword">typedef</span> <span class="keyword">typename</span> <span class="identifier">Base</span><span class="special">::</span><span class="identifier">key_compare</span> <span class="identifier">key_compare</span><span class="special">;</span>                      <span class="special">\</span>
+        <span class="keyword">typedef</span> <span class="keyword">typename</span> <span class="identifier">Base</span><span class="special">::</span><span class="identifier">value_compare</span> <span class="identifier">value_compare</span><span class="special">;</span>                  <span class="special">\</span>
+        <span class="identifier">BOOST_TREE_NODE_CONTAINER_DERIVED_BODY</span><span class="special">(</span><span class="identifier">Derived</span><span class="special">,</span> <span class="identifier">Base</span><span class="special">)</span>                <span class="special">\</span>
+</pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.assoc_cont_derived_body.description"></a><a class="link" href="assoc_cont_derived_body.html#tree_node.reference.assoc_cont_derived_body.description" title="Description">Description</a>
+</h4></div></div></div>
+<p>
+          Meant to be used in the <code class="computeroutput"><span class="keyword">public</span></code>
+          scope of an Associative Container model that inherits
+          from another.
+        </p>
+<p>
+          This macro defines the type definitions; the default, copy, and move constructors;
+          and the copy and move assignment operators necessary for the <code class="computeroutput"><span class="identifier">Derived</span></code> class to model the Default Constructible, Copy Constructible, Assignable, Movable, and Associative Container concepts.
+        </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.assoc_cont_derived_body.usage"></a><a class="link" href="assoc_cont_derived_body.html#tree_node.reference.assoc_cont_derived_body.usage" title="Usage">Usage</a>
+</h4></div></div></div>
+<pre class="programlisting"><span class="identifier">BOOST_TREE_NODE_ASSOCIATIVE_CONTAINER_DERIVED_BODY</span><span class="special">(</span><span class="identifier">Derived</span><span class="special">,</span> <span class="identifier">Base</span><span class="special">)</span>
+</pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.assoc_cont_derived_body.arguments"></a><a class="link" href="assoc_cont_derived_body.html#tree_node.reference.assoc_cont_derived_body.arguments" title="Arguments">Arguments</a>
+</h4></div></div></div>
+<div class="variablelist">
+<p class="title"><b>Notation</b></p>
+<dl class="variablelist">
+<dt><span class="term"><code class="computeroutput"><span class="identifier">Derived</span></code></span></dt>
+<dd><p>
+                The name of the enclosing type.
+              </p></dd>
+<dt><span class="term"><code class="computeroutput"><span class="identifier">Base</span></code></span></dt>
+<dd><p>
+                The name of the type from which <code class="computeroutput"><span class="identifier">Derived</span></code>
+                inherits.
+              </p></dd>
+</dl>
+</div>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.assoc_cont_derived_body.definition"></a><a class="link" href="assoc_cont_derived_body.html#tree_node.reference.assoc_cont_derived_body.definition" title="Where defined">Where
+        defined</a>
+</h4></div></div></div>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span>boost/tree_node/preprocessor.hpp<span class="special">></span>
+</pre>
+</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-2013 Cromwell D. Enage<p>
+        Distributed under the Boost Software License, Version 1.0. (See accompanying
+        file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="container_derived_body.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="emplace_ctor_fwd_decl.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/assoc_node_base_gen.html
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/assoc_node_base_gen.html	2013-07-07 14:52:52 EDT (Sun, 07 Jul 2013)	(r84977)
@@ -0,0 +1,193 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>associative_node_base_gen<Selector></title>
+<link rel="stylesheet" href="http://www.boost.org/doc/libs/release/doc/src/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.77.1">
+<link rel="home" href="../../index.html" title="Chapter 1. tree_node 0.5">
+<link rel="up" href="../reference.html" title="Reference">
+<link rel="prev" href="associative_node_base.html" title="associative_node_base<Derived,Key,Data,Selector>">
+<link rel="next" href="with_accumulation.html" title="with_accumulation<BaseGenerator,T1,T2,AccumulationKey>">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr><td valign="top"><img alt="C++ Boost" width="277" height="86" src="../../../../../../boost.png"></td></tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="associative_node_base.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="with_accumulation.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="tree_node.reference.assoc_node_base_gen"></a><a class="link" href="assoc_node_base_gen.html" title="associative_node_base_gen<Selector>"><code class="computeroutput"><span class="identifier">associative_node_base_gen</span><span class="special"><</span><span class="identifier">Selector</span><span class="special">></span></code></a>
+</h3></div></div></div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.assoc_node_base_gen.synopsis"></a><a class="link" href="assoc_node_base_gen.html#tree_node.reference.assoc_node_base_gen.synopsis" title="Synopsis">Synopsis</a>
+</h4></div></div></div>
+<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">Selector</span> <span class="special">=</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_mapS</span><span class="special">></span>
+    <span class="keyword">struct</span> <span class="identifier">associative_node_base_gen</span>
+    <span class="special">{</span>
+        <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">Derived</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">struct</span> <span class="identifier">apply</span>
+        <span class="special">{</span>
+            <span class="keyword">typedef</span> <span class="identifier">associative_node_base</span><span class="special"><</span><span class="identifier">Derived</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">Selector</span><span class="special">></span> <span class="identifier">type</span><span class="special">;</span>
+        <span class="special">};</span>
+    <span class="special">};</span>
+
+    <span class="keyword">typedef</span> <span class="identifier">associative_node_base_gen</span><span class="special"><></span> <span class="identifier">associative_node_base_default_gen</span><span class="special">;</span>
+<span class="special">}}</span>  <span class="comment">// namespace boost::tree_node</span>
+</pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.assoc_node_base_gen.description"></a><a class="link" href="assoc_node_base_gen.html#tree_node.reference.assoc_node_base_gen.description" title="Description">Description</a>
+</h4></div></div></div>
+<p>
+          Minimalist selector that can be passed on to generic functions and/or data
+          structures that use models of the <a class="link" href="../concepts/associative_tree_node.html" title="Associative Tree Node"><span class="bold"><strong>Associative Tree Node</strong></span></a> and <a class="link" href="../concepts/base_tree_node.html" title="Base Tree Node"><span class="bold"><strong>Base Tree Node</strong></span></a> concepts.
+        </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.assoc_node_base_gen.definition"></a><a class="link" href="assoc_node_base_gen.html#tree_node.reference.assoc_node_base_gen.definition" title="Where defined">Where
+        defined</a>
+</h4></div></div></div>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span>boost/tree_node/associative_node.hpp<span class="special">></span>
+</pre>
+<p>
+          To register under Boost.Typeof:
+        </p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span>boost/typeof/boost/tree_node/associative_node.hpp<span class="special">></span>
+</pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.assoc_node_base_gen.model_of"></a><a class="link" href="assoc_node_base_gen.html#tree_node.reference.assoc_node_base_gen.model_of" title="Model of">Model
+        of</a>
+</h4></div></div></div>
+<p>
+          <a class="link" href="../concepts/base_type_generator.html" title="Base Type Generator"><span class="bold"><strong>Base
+          Type Generator</strong></span></a>
+        </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.assoc_node_base_gen.tpl_param"></a><a class="link" href="assoc_node_base_gen.html#tree_node.reference.assoc_node_base_gen.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">Selector</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    The type that determines the child container type of <a class="link" href="associative_node_base.html" title="associative_node_base<Derived,Key,Data,Selector>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">associative_node_base</span></code></a>.
+                  </p>
+                </td>
+<td>
+                  <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem"><p>
+                        <code class="literal">boost::is_recursive_selector<Selector></code>
+                        must evaluate to boost::mpl::true_.
+                      </p></li>
+<li class="listitem"><p>
+                        <code class="literal">boost::is_associative_selector<Selector></code>
+                        must evaluate to boost::mpl::true_.
+                      </p></li>
+</ul></div>
+                </td>
+<td>
+                  <p>
+                    boost::ptr_mapS
+                  </p>
+                </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.assoc_node_base_gen.expressions"></a><a class="link" href="assoc_node_base_gen.html#tree_node.reference.assoc_node_base_gen.expressions" title="Expression Semantics">Expression
+        Semantics</a>
+</h4></div></div></div>
+<p>
+          Let <code class="computeroutput"><span class="identifier">Derived</span></code> be the type
+          that will inherit from <a class="link" href="associative_node_base.html" title="associative_node_base<Derived,Key,Data,Selector>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">associative_node_base</span></code></a>.
+        </p>
+<p>
+          Let <code class="computeroutput"><span class="identifier">Key</span></code> be the key type.
+        </p>
+<p>
+          Let <code class="computeroutput"><span class="identifier">Data</span></code> be the user data
+          type.
+        </p>
+<p>
+          Let <code class="computeroutput"><span class="identifier">Selector</span></code> be a valid
+          <code class="computeroutput"><span class="identifier">associative_node_base_gen</span></code>
+          template argument.
+        </p>
+<pre class="programlisting"><span class="keyword">typedef</span> boost::mpl::apply_wrap3<span class="special"><</span>
+    <span class="identifier">associative_node_base_gen</span><span class="special"><</span><span class="identifier">Selector</span><span class="special">></span>
+  <span class="special">,</span> <span class="identifier">Derived</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">type</span> <span class="identifier">r</span><span class="special">;</span>
+</pre>
+<p>
+          <span class="bold"><strong>Return type:</strong></span> <code class="literal"><a class="link" href="associative_node_base.html" title="associative_node_base<Derived,Key,Data,Selector>">tree_node::associative_node_base</a><Derived,Key,Data,Selector></code>
+        </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.assoc_node_base_gen.complexity"></a><a class="link" href="assoc_node_base_gen.html#tree_node.reference.assoc_node_base_gen.complexity" title="Complexity">Complexity</a>
+</h4></div></div></div>
+<p>
+          Compile time.
+        </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-2013 Cromwell D. Enage<p>
+        Distributed under the Boost Software License, Version 1.0. (See accompanying
+        file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="associative_node_base.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="with_accumulation.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/associative_node.html
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/associative_node.html	2013-07-07 14:52:52 EDT (Sun, 07 Jul 2013)	(r84977)
@@ -0,0 +1,1178 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>associative_node<Key,Data,Selector></title>
+<link rel="stylesheet" href="http://www.boost.org/doc/libs/release/doc/src/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.77.1">
+<link rel="home" href="../../index.html" title="Chapter 1. tree_node 0.5">
+<link rel="up" href="../reference.html" title="Reference">
+<link rel="prev" href="nary_node_base_gen.html" title="nary_node_base_gen<Selector>">
+<link rel="next" href="associative_node_gen.html" title="associative_node_gen<Selector>">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr><td valign="top"><img alt="C++ Boost" width="277" height="86" src="../../../../../../boost.png"></td></tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="nary_node_base_gen.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="associative_node_gen.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="tree_node.reference.associative_node"></a><a class="link" href="associative_node.html" title="associative_node<Key,Data,Selector>"><code class="computeroutput"><span class="identifier">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">Selector</span><span class="special">></span></code></a>
+</h3></div></div></div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.associative_node.description"></a><a class="link" href="associative_node.html#tree_node.reference.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. Objects of this
+          type can be stored by value, and their children can be accessed by their
+          associated keys for fast lookup.
+        </p>
+<p>
+          If the user data type models the Fusion Associative Sequence concept, then
+          each of the elements within can be also be obtained through key-value access
+          and set through key-value modification as defined by the <a class="link" href="../concepts/tree_node.html" title="Tree Node"><span class="bold"><strong>Tree Node</strong></span></a> concept; more specifically, for
+          some object <code class="computeroutput"><span class="identifier">node</span></code> of type
+          <code class="computeroutput"><span class="identifier">Node</span></code> such that <code class="computeroutput"><span class="identifier">Node</span></code> is a template instantiation of
+          <code class="computeroutput"><span class="identifier">associative_node</span></code>, then
+          for any type <code class="computeroutput"><span class="identifier">Key</span></code> such that
+          <code class="literal">boost::fusion::has_key<Key>(get<<a class="link" href="data_key.html" title="data_key">tree_node::data_key</a>>(node))</code>
+          returns <code class="computeroutput"><span class="keyword">true</span></code>, so does <code class="literal"><a class="link" href="has_key.html" title="has_key()">tree_node::has_key</a><Key>(node)</code>.
+        </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.associative_node.definition"></a><a class="link" href="associative_node.html#tree_node.reference.associative_node.definition" title="Where defined">Where
+        defined</a>
+</h4></div></div></div>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span>boost/tree_node/associative_node.hpp<span class="special">></span>
+</pre>
+<p>
+          Forward-declared:
+        </p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span>boost/tree_node/associative_node_fwd.hpp<span class="special">></span>
+</pre>
+<p>
+          To register under Boost.Typeof:
+        </p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span>boost/typeof/boost/tree_node/associative_node.hpp<span class="special">></span>
+</pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.associative_node.tpl_param"></a><a class="link" href="associative_node.html#tree_node.reference.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">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 user data to be stored in an <code class="computeroutput"><span class="identifier">associative_node</span></code>.
+                  </p>
+                </td>
+<td>
+                </td>
+<td>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">Selector</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    The type that determines the child container type.
+                  </p>
+                </td>
+<td>
+                  <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem"><p>
+                        <code class="literal">boost::is_recursive_selector<Selector></code>
+                        must evaluate to boost::mpl::true_.
+                      </p></li>
+<li class="listitem"><p>
+                        <code class="literal">boost::is_associative_selector<Selector></code>
+                        must evaluate to boost::mpl::true_.
+                      </p></li>
+</ul></div>
+                </td>
+<td>
+                  <p>
+                    boost::ptr_mapS
+                  </p>
+                </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.associative_node.model_of"></a><a class="link" href="associative_node.html#tree_node.reference.associative_node.model_of" title="Model of">Model
+        of</a>
+</h4></div></div></div>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem"><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></li>
+<li class="listitem"><p>
+              <a class="link" href="../concepts/reversible_tree_node.html" title="Reversible Tree Node"><span class="bold"><strong>Reversible
+              Tree Node</strong></span></a> if <code class="literal">boost::container_gen<Selector,Key,associative_node>::type</code>
+              returns a Reversible Container model
+            </p></li>
+<li class="listitem"><p>
+              Default Constructible if <code class="computeroutput"><span class="identifier">Data</span></code> is Default Constructible
+            </p></li>
+<li class="listitem"><p>
+              <a class="link" href="../concepts/copyable_tree_node.html" title="Copyable Tree Node"><span class="bold"><strong>Copyable
+              Tree Node</strong></span></a> if <code class="computeroutput"><span class="identifier">Data</span></code>
+              is Copy Constructible
+            </p></li>
+<li class="listitem"><p>
+              Assignable
+              if <code class="computeroutput"><span class="identifier">Data</span></code> is Copy Constructible and Movable
+            </p></li>
+<li class="listitem"><p>
+              <a class="link" href="../concepts/movable_tree_node.html" title="Movable Tree Node"><span class="bold"><strong>Movable
+              Tree Node</strong></span></a> if <code class="computeroutput"><span class="identifier">Data</span></code>
+              is Movable
+            </p></li>
+</ul></div>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.associative_node.public_bases"></a><a class="link" href="associative_node.html#tree_node.reference.associative_node.public_bases" title="Public Base Classes">Public
+        Base Classes</a>
+</h4></div></div></div>
+<pre class="programlisting"><span class="identifier">associative_node_base</span><span class="special"><</span>
+    <span class="identifier">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">Selector</span><span class="special">></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">Selector</span>
+<span class="special">></span>
+</pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.associative_node.members"></a><a class="link" href="associative_node.html#tree_node.reference.associative_node.members" title="Public Members">Public
+        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>
+                    Definition
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Where defined
+                  </p>
+                </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+                  <p>
+                    Super type
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">typedef</span> <span class="identifier">associative_node_base</span><span class="special"><</span>
+            <span class="identifier">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">Selector</span>
+        <span class="special">></span>
+        <span class="identifier">super_t</span><span class="special">;</span>
+</pre>
+                </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>
+                    Key type, data type, iterator range type, immutable iterator
+                    range type, allocator type, allocator reference type
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">typedef</span> <span class="keyword">typename</span> <span class="identifier">super_t</span><span class="special">::</span><span class="identifier">traits</span>
+        <span class="identifier">traits</span><span class="special">;</span>
+</pre>
+                </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>
+                    Pointer type
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">typedef</span> <span class="keyword">typename</span> <span class="identifier">super_t</span><span class="special">::</span><span class="identifier">pointer</span>
+        <span class="identifier">pointer</span><span class="special">;</span>
+</pre>
+                </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>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">typedef</span> <span class="keyword">typename</span> <span class="identifier">super_t</span><span class="special">::</span><span class="identifier">const_pointer</span>
+        <span class="identifier">const_pointer</span><span class="special">;</span>
+</pre>
+                </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>
+                    Iterator type
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">typedef</span> <span class="keyword">typename</span> <span class="identifier">super_t</span><span class="special">::</span><span class="identifier">iterator</span>
+        <span class="identifier">iterator</span><span class="special">;</span>
+</pre>
+                </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 iterator type
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">typedef</span> <span class="keyword">typename</span> <span class="identifier">super_t</span><span class="special">::</span><span class="identifier">const_iterator</span>
+        <span class="identifier">const_iterator</span><span class="special">;</span>
+</pre>
+                </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>
+                    Reverse iterator type
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">typedef</span> <span class="keyword">typename</span> <span class="identifier">children</span><span class="special">::</span><span class="identifier">reverse_iterator</span> <span class="identifier">reverse_iterator</span><span class="special">;</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <a class="link" href="../concepts/reversible_tree_node.html" title="Reversible Tree Node"><span class="bold"><strong>Reversible Tree Node</strong></span></a>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Immutable reverse iterator type
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">typedef</span> <span class="keyword">typename</span> <span class="identifier">children</span><span class="special">::</span><span class="identifier">const_reverse_iterator</span>
+        <span class="identifier">const_reverse_iterator</span><span class="special">;</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <a class="link" href="../concepts/reversible_tree_node.html" title="Reversible Tree Node"><span class="bold"><strong>Reversible Tree Node</strong></span></a>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Emplacement constructor
+                  </p>
+                </td>
+<td>
+<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="special">...</span><span class="identifier">Args</span><span class="special">></span>
+<span class="keyword">explicit</span> <span class="identifier">associative_node</span><span class="special">(</span><span class="identifier">Args</span><span class="special">&&</span> <span class="special">...</span><span class="identifier">args</span><span class="special">);</span>
+</pre>
+                </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>
+                    Emplacement constructor with allocator
+                  </p>
+                </td>
+<td>
+<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="special">...</span><span class="identifier">Args</span><span class="special">></span>
+<span class="keyword">explicit</span> <span class="identifier">associative_node</span><span class="special">(</span>
+    <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">container</span><span class="special">::</span><span class="identifier">allocator_arg_t</span>
+  <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">traits</span><span class="special">::</span><span class="identifier">allocator_reference</span> <span class="identifier">allocator</span>
+  <span class="special">,</span> <span class="identifier">Args</span><span class="special">&&</span> <span class="special">...</span><span class="identifier">args</span>
+<span class="special">);</span>
+</pre>
+                </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>
+                    Copy constructor
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">associative_node</span><span class="special">(</span><span class="identifier">associative_node</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">copy</span><span class="special">);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <a class="link" href="../concepts/copyable_tree_node.html" title="Copyable Tree Node"><span class="bold"><strong>Copyable Tree Node</strong></span></a>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Copy constructor with allocator
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">associative_node</span><span class="special">(</span>
+    <span class="identifier">associative_node</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">copy</span>
+  <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">traits</span><span class="special">::</span><span class="identifier">allocator_reference</span> <span class="identifier">allocator</span>
+<span class="special">);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <a class="link" href="../concepts/copyable_tree_node.html" title="Copyable Tree Node"><span class="bold"><strong>Copyable Tree Node</strong></span></a>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Move constructor
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">associative_node</span><span class="special">(</span><span class="identifier">associative_node</span><span class="special">&&</span> <span class="identifier">source</span><span class="special">);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <a class="link" href="../concepts/movable_tree_node.html" title="Movable Tree Node"><span class="bold"><strong>Movable Tree Node</strong></span></a>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Move constructor with allocator
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">associative_node</span><span class="special">(</span>
+    <span class="identifier">associative_node</span><span class="special">&&</span> <span class="identifier">source</span>
+  <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">traits</span><span class="special">::</span><span class="identifier">allocator_reference</span> <span class="identifier">allocator</span>
+<span class="special">);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <a class="link" href="../concepts/movable_tree_node.html" title="Movable Tree Node"><span class="bold"><strong>Movable Tree Node</strong></span></a>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Copy assignment operator
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">associative_node</span><span class="special">&</span> <span class="keyword">operator</span><span class="special">=(</span><span class="identifier">associative_node</span> <span class="keyword">const</span><span class="special">&);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Assignable
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Move assignment operator
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">associative_node</span><span class="special">&</span> <span class="keyword">operator</span><span class="special">=(</span><span class="identifier">associative_node</span><span class="special">&&);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Movable
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Parent read-only access
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">const_pointer</span> <span class="identifier">get_parent_ptr</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+</pre>
+                </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>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">pointer</span> <span class="identifier">get_parent_ptr</span><span class="special">();</span>
+</pre>
+                </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
+                  </p>
+                </td>
+<td>
+<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="special">...</span><span class="identifier">Args</span><span class="special">></span>
+<span class="identifier">iterator</span> <span class="identifier">emplace</span><span class="special">(</span><span class="keyword">typename</span> <span class="identifier">traits</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">Args</span><span class="special">&&</span> <span class="special">...</span><span class="identifier">args</span><span class="special">);</span>
+</pre>
+                </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>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">iterator</span>
+    <span class="identifier">insert</span><span class="special">(</span>
+        <span class="keyword">typename</span> <span class="identifier">traits</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">associative_node</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">child</span>
+    <span class="special">);</span>
+</pre>
+                </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 move insertion
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">iterator</span>
+    <span class="identifier">insert</span><span class="special">(</span>
+        <span class="keyword">typename</span> <span class="identifier">traits</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">associative_node</span><span class="special">&&</span> <span class="identifier">child</span>
+    <span class="special">);</span>
+</pre>
+                </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 read-only access
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">const_iterator</span> <span class="identifier">cbegin</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+<span class="identifier">const_iterator</span> <span class="identifier">begin</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+</pre>
+                </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>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">iterator</span> <span class="identifier">begin</span><span class="special">();</span>
+</pre>
+                </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 read-only access
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">const_iterator</span> <span class="identifier">cend</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+<span class="identifier">const_iterator</span> <span class="identifier">end</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+</pre>
+                </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>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">iterator</span> <span class="identifier">end</span><span class="special">();</span>
+</pre>
+                </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 reverse range begin read-only access
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">const_reverse_iterator</span> <span class="identifier">crbegin</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+<span class="identifier">const_reverse_iterator</span> <span class="identifier">rbegin</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <a class="link" href="../concepts/reversible_tree_node.html" title="Reversible Tree Node"><span class="bold"><strong>Reversible Tree Node</strong></span></a>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Children reverse range begin access
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">reverse_iterator</span> <span class="identifier">rbegin</span><span class="special">();</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <a class="link" href="../concepts/reversible_tree_node.html" title="Reversible Tree Node"><span class="bold"><strong>Reversible Tree Node</strong></span></a>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Children reverse range past-the-end read-only access
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">const_reverse_iterator</span> <span class="identifier">crend</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+<span class="identifier">const_reverse_iterator</span> <span class="identifier">rend</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <a class="link" href="../concepts/reversible_tree_node.html" title="Reversible Tree Node"><span class="bold"><strong>Reversible Tree Node</strong></span></a>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Children reverse range past-the-end access
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">reverse_iterator</span> <span class="identifier">rend</span><span class="special">();</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <a class="link" href="../concepts/reversible_tree_node.html" title="Reversible Tree Node"><span class="bold"><strong>Reversible Tree Node</strong></span></a>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Children range size query
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">size_type</span> <span class="identifier">size</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+</pre>
+                </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 read-only search
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">const_iterator</span> <span class="identifier">find</span><span class="special">(</span><span class="keyword">typename</span> <span class="identifier">traits</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>
+</pre>
+                </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>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">iterator</span> <span class="identifier">find</span><span class="special">(</span><span class="keyword">typename</span> <span class="identifier">traits</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>
+</pre>
+                </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 read-only search lower bound
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">const_iterator</span> <span class="identifier">lower_bound</span><span class="special">(</span><span class="keyword">typename</span> <span class="identifier">traits</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>
+</pre>
+                </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 lower bound
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">iterator</span> <span class="identifier">lower_bound</span><span class="special">(</span><span class="keyword">typename</span> <span class="identifier">traits</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>
+</pre>
+                </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 read-only search upper bound
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">const_iterator</span> <span class="identifier">upper_bound</span><span class="special">(</span><span class="keyword">typename</span> <span class="identifier">traits</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>
+</pre>
+                </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 upper bound
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">iterator</span> <span class="identifier">upper_bound</span><span class="special">(</span><span class="keyword">typename</span> <span class="identifier">traits</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>
+</pre>
+                </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 read-only search range
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">typename</span> <span class="identifier">traits</span><span class="special">::</span><span class="identifier">const_iterator_range</span>
+    <span class="identifier">equal_range</span><span class="special">(</span><span class="keyword">typename</span> <span class="identifier">traits</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>
+</pre>
+                </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>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">typename</span> <span class="identifier">traits</span><span class="special">::</span><span class="identifier">iterator_range</span>
+    <span class="identifier">equal_range</span><span class="special">(</span><span class="keyword">typename</span> <span class="identifier">traits</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>
+</pre>
+                </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>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">size_type</span> <span class="identifier">erase</span><span class="special">(</span><span class="keyword">typename</span> <span class="identifier">traits</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>
+</pre>
+                </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>
+                    Leaf node query
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">bool</span> <span class="identifier">empty</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+</pre>
+                </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>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">void</span> <span class="identifier">clear</span><span class="special">();</span>
+</pre>
+                </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.associative_node.non_members"></a><a class="link" href="associative_node.html#tree_node.reference.associative_node.non_members" title="Non-Members">Non-Members</a>
+</h4></div></div></div>
+<p>
+          Same as those defined in <a class="link" href="associative_node_base.html" title="associative_node_base<Derived,Key,Data,Selector>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">associative_node_base</span></code></a>.
+        </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.associative_node.example"></a><a class="link" href="associative_node.html#tree_node.reference.associative_node.example" title="Example">Example</a>
+</h4></div></div></div>
+<p>
+          An inverted index
+          maps words and numbers to the documents that contain them, making it a
+          vital component for implementing search engines. In turn, a <a href="http://en.wikipedia.org/wiki/Radix_tree" target="_top">radix
+          tree</a>, designed to store strings as keys, is a good underlying data
+          structure for an inverted index.
+        </p>
+<p>
+          For the sake of simplicity, the program will store its documents in a random-access
+          container, so our inverted index implementation will refer to them by index.
+        </p>
+<pre class="programlisting"><span class="keyword">typedef</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">set</span><span class="special"><</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span><span class="special">></span> <span class="identifier">Indices</span><span class="special">;</span>
+<span class="keyword">typedef</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">associative_node</span><span class="special"><</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">,</span><span class="identifier">Indices</span><span class="special">></span> <span class="identifier">RadixTrieNode</span><span class="special">;</span>
+</pre>
+<p>
+          Since a radix tree
+          is a space-optimized trie
+          data structure, we can simplify things further by keeping the insertion
+          and space-optimization routines as separate functions. (An industrial-strength
+          implementation will, of course, optimize for space during insertion.) Thus,
+          our inverted index will treat each word it encounters as a sequence of
+          letters, initially storing them as keys to the next successive node or
+          to the set of indices to the documents containing the word. The documents
+          are simply strings of space-delimited words, which can be extracted via
+          Boost.Tokenizer.
+        </p>
+<pre class="programlisting"><span class="keyword">class</span> <span class="identifier">InvertedIndex</span>
+<span class="special">{</span>
+    <span class="identifier">RadixTrieNode</span> <span class="identifier">radix_root_node</span><span class="special">;</span>
+
+ <span class="keyword">public</span><span class="special">:</span>
+    <span class="keyword">void</span> <span class="identifier">insert</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">entry</span><span class="special">,</span> <span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="identifier">index</span><span class="special">)</span>
+    <span class="special">{</span>
+        <span class="identifier">boost</span><span class="special">::</span><span class="identifier">tokenizer</span><span class="special"><></span> <span class="identifier">word_parser</span><span class="special">(</span><span class="identifier">entry</span><span class="special">);</span>
+
+        <span class="keyword">for</span> <span class="special">(</span>
+            <span class="identifier">boost</span><span class="special">::</span><span class="identifier">tokenizer</span><span class="special"><>::</span><span class="identifier">iterator</span> <span class="identifier">word_itr</span> <span class="special">=</span> <span class="identifier">word_parser</span><span class="special">.</span><span class="identifier">begin</span><span class="special">();</span>
+            <span class="identifier">word_itr</span> <span class="special">!=</span> <span class="identifier">word_parser</span><span class="special">.</span><span class="identifier">end</span><span class="special">();</span>
+            <span class="special">++</span><span class="identifier">word_itr</span>
+        <span class="special">)</span>
+        <span class="special">{</span>
+            <span class="identifier">RadixTrieNode</span><span class="special">::</span><span class="identifier">pointer</span> <span class="identifier">p</span> <span class="special">=</span> <span class="special">&</span><span class="identifier">radix_root_node</span><span class="special">;</span>
+
+            <span class="keyword">for</span> <span class="special">(</span>
+                <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">::</span><span class="identifier">const_iterator</span> <span class="identifier">itr_to_char</span> <span class="special">=</span> <span class="identifier">word_itr</span><span class="special">-></span><span class="identifier">begin</span><span class="special">();</span>
+                <span class="identifier">itr_to_char</span> <span class="special">!=</span> <span class="identifier">word_itr</span><span class="special">-></span><span class="identifier">end</span><span class="special">();</span>
+                <span class="special">++</span><span class="identifier">itr_to_char</span>
+            <span class="special">)</span>
+            <span class="special">{</span>
+                <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <span class="identifier">letter</span> <span class="special">=</span> <span class="string">""</span><span class="special">;</span>
+
+                <span class="identifier">p</span> <span class="special">=</span> <span class="special">&</span><span class="identifier">dereference_iterator</span><span class="special">(</span><span class="identifier">p</span><span class="special">-></span><span class="identifier">emplace</span><span class="special">(</span><span class="identifier">letter</span> <span class="special">+=</span> <span class="special">*</span><span class="identifier">itr_to_char</span><span class="special">));</span>
+            <span class="special">}</span>
+
+            <span class="identifier">get</span><span class="special">(*</span><span class="identifier">p</span><span class="special">,</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">data_key</span><span class="special">()).</span><span class="identifier">insert</span><span class="special">(</span><span class="identifier">index</span><span class="special">);</span>
+        <span class="special">}</span>
+    <span class="special">}</span>
+</pre>
+<p>
+          To optimize for space, in this case, means merging each single-child node
+          with its offspring while concatenating the associated keys. A breadth-first
+          traversal will encounter the minimum number of nodes that need to be checked.
+        </p>
+<pre class="programlisting"><span class="keyword">void</span> <span class="identifier">flatten</span><span class="special">()</span>
+<span class="special">{</span>
+    <span class="keyword">for</span> <span class="special">(</span>
+        <span class="identifier">boost</span><span class="special">::</span><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">breadth_first_iterator</span><span class="special"><</span><span class="identifier">RadixTrieNode</span><span class="special">></span> <span class="identifier">tree_itr</span><span class="special">(</span>
+            <span class="identifier">radix_root_node</span>
+        <span class="special">);</span>
+        <span class="identifier">tree_itr</span><span class="special">;</span>
+        <span class="special">++</span><span class="identifier">tree_itr</span>
+    <span class="special">)</span>
+    <span class="special">{</span>
+        <span class="keyword">for</span> <span class="special">(</span>
+            <span class="identifier">RadixTrieNode</span><span class="special">::</span><span class="identifier">iterator</span> <span class="identifier">child_itr</span> <span class="special">=</span> <span class="identifier">tree_itr</span><span class="special">-></span><span class="identifier">begin</span><span class="special">();</span>
+            <span class="identifier">child_itr</span> <span class="special">!=</span> <span class="identifier">tree_itr</span><span class="special">-></span><span class="identifier">end</span><span class="special">();</span>
+            <span class="special">++</span><span class="identifier">child_itr</span>
+        <span class="special">)</span>
+        <span class="special">{</span>
+            <span class="keyword">while</span> <span class="special">(</span><span class="number">1</span> <span class="special">==</span> <span class="identifier">dereference_iterator</span><span class="special">(</span><span class="identifier">child_itr</span><span class="special">).</span><span class="identifier">size</span><span class="special">())</span>
+            <span class="special">{</span>
+                <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <span class="identifier">key</span> <span class="special">=</span> <span class="identifier">child_itr</span><span class="special">-></span><span class="identifier">first</span> <span class="special">+</span> <span class="identifier">dereference_iterator</span><span class="special">(</span>
+                    <span class="identifier">child_itr</span>
+                <span class="special">).</span><span class="identifier">begin</span><span class="special">()-></span><span class="identifier">first</span><span class="special">;</span>
+                <span class="identifier">RadixTrieNode</span> <span class="identifier">merger</span><span class="special">(</span>
+                    <span class="identifier">boost</span><span class="special">::</span><span class="identifier">move</span><span class="special">(</span>
+                        <span class="identifier">dereference_iterator</span><span class="special">(</span>
+                            <span class="identifier">dereference_iterator</span><span class="special">(</span><span class="identifier">child_itr</span><span class="special">).</span><span class="identifier">begin</span><span class="special">()</span>
+                        <span class="special">)</span>
+                    <span class="special">)</span>
+                <span class="special">);</span>
+
+                <span class="identifier">tree_itr</span><span class="special">-></span><span class="identifier">erase</span><span class="special">(</span><span class="identifier">child_itr</span><span class="special">-></span><span class="identifier">first</span><span class="special">);</span>
+                <span class="identifier">child_itr</span> <span class="special">=</span> <span class="identifier">tree_itr</span><span class="special">-></span><span class="identifier">insert</span><span class="special">(</span><span class="identifier">key</span><span class="special">,</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">move</span><span class="special">(</span><span class="identifier">merger</span><span class="special">));</span>
+            <span class="special">}</span>
+        <span class="special">}</span>
+    <span class="special">}</span>
+<span class="special">}</span>
+</pre>
+<p>
+          When searching for a particular word, our inverted index will, at each
+          step, determine what portion of the specified word needs to be processed,
+          then choose the branch whose key matches either that portion or a prefix
+          substring. If the key matches the remaining portion, then the function
+          returns the indices to the containing documents. If the key matches a prefix,
+          then the suffix will be processed at the next step. If no branch exists,
+          then the word is not found.
+        </p>
+<pre class="programlisting">    <span class="identifier">Indices</span> <span class="identifier">find</span><span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">word</span><span class="special">)</span> <span class="keyword">const</span>
+    <span class="special">{</span>
+        <span class="identifier">Indices</span> <span class="identifier">result</span><span class="special">;</span>
+
+        <span class="keyword">if</span> <span class="special">(</span><span class="identifier">word</span><span class="special">.</span><span class="identifier">empty</span><span class="special">())</span>
+        <span class="special">{</span>
+            <span class="keyword">return</span> <span class="identifier">result</span><span class="special">;</span>
+        <span class="special">}</span>
+
+        <span class="identifier">RadixTrieNode</span><span class="special">::</span><span class="identifier">const_pointer</span> <span class="identifier">p</span> <span class="special">=</span> <span class="special">&</span><span class="identifier">radix_root_node</span><span class="special">;</span>
+
+        <span class="keyword">for</span> <span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <span class="identifier">prefix</span> <span class="special">=</span> <span class="string">""</span><span class="special">;</span> <span class="special">!</span><span class="identifier">p</span><span class="special">-></span><span class="identifier">empty</span><span class="special">();)</span>
+        <span class="special">{</span>
+            <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <span class="identifier">suffix</span><span class="special">(</span><span class="identifier">word</span><span class="special">,</span> <span class="identifier">prefix</span><span class="special">.</span><span class="identifier">size</span><span class="special">(),</span> <span class="identifier">word</span><span class="special">.</span><span class="identifier">size</span><span class="special">());</span>
+            <span class="identifier">RadixTrieNode</span><span class="special">::</span><span class="identifier">const_iterator</span> <span class="identifier">node_itr</span> <span class="special">=</span> <span class="identifier">p</span><span class="special">-></span><span class="identifier">lower_bound</span><span class="special">(</span><span class="identifier">suffix</span><span class="special">);</span>
+
+            <span class="keyword">if</span> <span class="special">(!(</span><span class="identifier">node_itr</span> <span class="special">==</span> <span class="identifier">p</span><span class="special">-></span><span class="identifier">end</span><span class="special">())</span> <span class="special">&&</span> <span class="special">(</span><span class="identifier">suffix</span> <span class="special">==</span> <span class="identifier">node_itr</span><span class="special">-></span><span class="identifier">first</span><span class="special">))</span>
+            <span class="special">{</span>
+                <span class="identifier">result</span> <span class="special">=</span> <span class="identifier">get</span><span class="special">(</span>
+                    <span class="identifier">dereference_iterator</span><span class="special">(</span><span class="identifier">node_itr</span><span class="special">)</span>
+                  <span class="special">,</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">data_key</span><span class="special">()</span>
+                <span class="special">);</span>
+                <span class="keyword">break</span><span class="special">;</span>
+            <span class="special">}</span>
+            <span class="keyword">else</span> <span class="keyword">if</span> <span class="special">(</span><span class="identifier">node_itr</span> <span class="special">==</span> <span class="identifier">p</span><span class="special">-></span><span class="identifier">begin</span><span class="special">())</span>
+            <span class="special">{</span>
+                <span class="keyword">break</span><span class="special">;</span>
+            <span class="special">}</span>
+            <span class="keyword">else</span>
+            <span class="special">{</span>
+                <span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span> <span class="identifier">next_prefix</span><span class="special">(</span><span class="identifier">suffix</span><span class="special">,</span> <span class="number">0</span><span class="special">,</span> <span class="special">(--</span><span class="identifier">node_itr</span><span class="special">)-></span><span class="identifier">first</span><span class="special">.</span><span class="identifier">size</span><span class="special">());</span>
+
+                <span class="keyword">if</span> <span class="special">(</span><span class="identifier">next_prefix</span> <span class="special">==</span> <span class="identifier">node_itr</span><span class="special">-></span><span class="identifier">first</span><span class="special">)</span>
+                <span class="special">{</span>
+                    <span class="identifier">prefix</span> <span class="special">+=</span> <span class="identifier">next_prefix</span><span class="special">;</span>
+                    <span class="identifier">p</span> <span class="special">=</span> <span class="special">&</span><span class="identifier">dereference_iterator</span><span class="special">(</span><span class="identifier">node_itr</span><span class="special">);</span>
+                <span class="special">}</span>
+                <span class="keyword">else</span>
+                <span class="special">{</span>
+                    <span class="keyword">break</span><span class="special">;</span>
+                <span class="special">}</span>
+            <span class="special">}</span>
+        <span class="special">}</span>
+
+        <span class="keyword">return</span> <span class="identifier">result</span><span class="special">;</span>
+    <span class="special">}</span>
+<span class="special">};</span>
+</pre>
+<p>
+          In our program, the search space is a small array of documents, each of
+          which the program will feed to the inverted index.
+        </p>
+<pre class="programlisting"><span class="keyword">int</span> <span class="identifier">test_main</span><span class="special">(</span><span class="keyword">int</span> <span class="identifier">argc</span><span class="special">,</span> <span class="keyword">char</span><span class="special">**</span> <span class="identifier">argv</span><span class="special">)</span>
+<span class="special">{</span>
+    <span class="identifier">std</span><span class="special">::</span><span class="identifier">vector</span><span class="special"><</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">string</span><span class="special">></span> <span class="identifier">database</span><span class="special">(</span><span class="number">3</span><span class="special">);</span>
+
+    <span class="identifier">database</span><span class="special">[</span><span class="number">0</span><span class="special">]</span> <span class="special">=</span> <span class="string">"it is what it is"</span><span class="special">;</span>
+    <span class="identifier">database</span><span class="special">[</span><span class="number">1</span><span class="special">]</span> <span class="special">=</span> <span class="string">"what is it"</span><span class="special">;</span>
+    <span class="identifier">database</span><span class="special">[</span><span class="number">2</span><span class="special">]</span> <span class="special">=</span> <span class="string">"it is a banana"</span><span class="special">;</span>
+
+    <span class="identifier">InvertedIndex</span> <span class="identifier">inverted_index</span><span class="special">;</span>
+
+    <span class="keyword">for</span> <span class="special">(</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</span> <span class="identifier">i</span> <span class="special">=</span> <span class="number">0</span><span class="special">;</span> <span class="identifier">i</span> <span class="special"><</span> <span class="identifier">database</span><span class="special">.</span><span class="identifier">size</span><span class="special">();</span> <span class="special">++</span><span class="identifier">i</span><span class="special">)</span>
+    <span class="special">{</span>
+        <span class="identifier">inverted_index</span><span class="special">.</span><span class="identifier">insert</span><span class="special">(</span><span class="identifier">database</span><span class="special">[</span><span class="identifier">i</span><span class="special">],</span> <span class="identifier">i</span><span class="special">);</span>
+    <span class="special">}</span>
+
+    <span class="identifier">inverted_index</span><span class="special">.</span><span class="identifier">flatten</span><span class="special">();</span>
+</pre>
+<p>
+          Then, for each unique word, the program will send the associated indices
+          to standard output.
+        </p>
+<pre class="programlisting">    <span class="identifier">Indices</span> <span class="identifier">indices</span> <span class="special">=</span> <span class="identifier">inverted_index</span><span class="special">.</span><span class="identifier">find</span><span class="special">(</span><span class="string">"a"</span><span class="special">);</span>
+
+    <span class="identifier">BOOST_CHECK</span><span class="special">(</span><span class="number">1</span> <span class="special">==</span> <span class="identifier">indices</span><span class="special">.</span><span class="identifier">size</span><span class="special">());</span>
+    <span class="identifier">BOOST_CHECK</span><span class="special">(</span><span class="number">2</span> <span class="special">==</span> <span class="special">*</span><span class="identifier">indices</span><span class="special">.</span><span class="identifier">begin</span><span class="special">());</span>
+    <span class="identifier">indices</span> <span class="special">=</span> <span class="identifier">inverted_index</span><span class="special">.</span><span class="identifier">find</span><span class="special">(</span><span class="string">"banana"</span><span class="special">);</span>
+    <span class="identifier">BOOST_CHECK</span><span class="special">(</span><span class="number">1</span> <span class="special">==</span> <span class="identifier">indices</span><span class="special">.</span><span class="identifier">size</span><span class="special">());</span>
+    <span class="identifier">BOOST_CHECK</span><span class="special">(</span><span class="number">2</span> <span class="special">==</span> <span class="special">*</span><span class="identifier">indices</span><span class="special">.</span><span class="identifier">begin</span><span class="special">());</span>
+    <span class="identifier">indices</span><span class="special">.</span><span class="identifier">insert</span><span class="special">(</span><span class="number">0</span><span class="special">);</span>
+    <span class="identifier">indices</span><span class="special">.</span><span class="identifier">insert</span><span class="special">(</span><span class="number">1</span><span class="special">);</span>
+    <span class="identifier">BOOST_CHECK</span><span class="special">(</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">range</span><span class="special">::</span><span class="identifier">equal</span><span class="special">(</span><span class="identifier">indices</span><span class="special">,</span> <span class="identifier">inverted_index</span><span class="special">.</span><span class="identifier">find</span><span class="special">(</span><span class="string">"is"</span><span class="special">)));</span>
+    <span class="identifier">BOOST_CHECK</span><span class="special">(</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">range</span><span class="special">::</span><span class="identifier">equal</span><span class="special">(</span><span class="identifier">indices</span><span class="special">,</span> <span class="identifier">inverted_index</span><span class="special">.</span><span class="identifier">find</span><span class="special">(</span><span class="string">"it"</span><span class="special">)));</span>
+    <span class="identifier">indices</span><span class="special">.</span><span class="identifier">erase</span><span class="special">(</span><span class="number">2</span><span class="special">);</span>
+    <span class="identifier">BOOST_CHECK</span><span class="special">(</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">range</span><span class="special">::</span><span class="identifier">equal</span><span class="special">(</span><span class="identifier">indices</span><span class="special">,</span> <span class="identifier">inverted_index</span><span class="special">.</span><span class="identifier">find</span><span class="special">(</span><span class="string">"what"</span><span class="special">)));</span>
+
+    <span class="keyword">return</span> <span class="number">0</span><span class="special">;</span>
+<span class="special">}</span>
+</pre>
+<p>
+          The complete program source can be found here: <test/inverted_index.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-2013 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="nary_node_base_gen.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="associative_node_gen.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/associative_node_base.html
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/associative_node_base.html	2013-07-07 14:52:52 EDT (Sun, 07 Jul 2013)	(r84977)
@@ -0,0 +1,1686 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>associative_node_base<Derived,Key,Data,Selector></title>
+<link rel="stylesheet" href="http://www.boost.org/doc/libs/release/doc/src/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.77.1">
+<link rel="home" href="../../index.html" title="Chapter 1. tree_node 0.5">
+<link rel="up" href="../reference.html" title="Reference">
+<link rel="prev" href="associative_node_gen.html" title="associative_node_gen<Selector>">
+<link rel="next" href="assoc_node_base_gen.html" title="associative_node_base_gen<Selector>">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr><td valign="top"><img alt="C++ Boost" width="277" height="86" src="../../../../../../boost.png"></td></tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="associative_node_gen.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="assoc_node_base_gen.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="tree_node.reference.associative_node_base"></a><a class="link" href="associative_node_base.html" title="associative_node_base<Derived,Key,Data,Selector>"><code class="computeroutput"><span class="identifier">associative_node_base</span><span class="special"><</span><span class="identifier">Derived</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">Selector</span><span class="special">></span></code> </a>
+</h3></div></div></div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.associative_node_base.description"></a><a class="link" href="associative_node_base.html#tree_node.reference.associative_node_base.description" title="Description">Description</a>
+</h4></div></div></div>
+<p>
+          The <a class="link" href="associative_node.html" title="associative_node<Key,Data,Selector>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">associative_node</span></code></a> class template
+          inherits its functionality from this class template. They differ only with
+          regard to template parameters: the <a class="link" href="associative_node.html" title="associative_node<Key,Data,Selector>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">associative_node</span></code></a> class template
+          is meant to be used directly as a data structure, while <code class="computeroutput"><span class="identifier">associative_node_base</span></code>
+          is more suitable as a base class template from which <a class="link" href="../concepts/tree_node.html" title="Tree Node"><span class="bold"><strong>Tree Node</strong></span></a> adaptor class templates can derive
+          via the <a class="link" href="assoc_node_base_gen.html" title="associative_node_base_gen<Selector>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">associative_node_base_gen</span></code></a> <a class="link" href="../concepts/base_type_generator.html" title="Base Type Generator"><span class="bold"><strong>Base
+          Type Generator</strong></span></a>.
+        </p>
+<p>
+          If the user data type models the Fusion Associative Sequence concept, then
+          each of the elements within can be also be obtained through key-value access
+          and set through key-value modification as defined by the <a class="link" href="../concepts/tree_node.html" title="Tree Node"><span class="bold"><strong>Tree Node</strong></span></a> concept; more specifically, for
+          some object <code class="computeroutput"><span class="identifier">node</span></code> of type
+          <code class="computeroutput"><span class="identifier">Node</span></code> such that <code class="computeroutput"><span class="identifier">Node</span></code> inherits from <code class="computeroutput"><span class="identifier">associative_node_base</span></code>,
+          then for any type <code class="computeroutput"><span class="identifier">Key</span></code> such
+          that <code class="literal">boost::fusion::has_key<Key>(get<<a class="link" href="data_key.html" title="data_key">tree_node::data_key</a>>(node))</code>
+          returns <code class="computeroutput"><span class="keyword">true</span></code>, so does <code class="literal"><a class="link" href="has_key.html" title="has_key()">tree_node::has_key</a><Key>(node)</code>.
+        </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.associative_node_base.definition"></a><a class="link" href="associative_node_base.html#tree_node.reference.associative_node_base.definition" title="Where defined">Where
+        defined</a>
+</h4></div></div></div>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span>boost/tree_node/associative_node.hpp<span class="special">></span>
+</pre>
+<p>
+          Forward-declared:
+        </p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span>boost/tree_node/associative_node_fwd.hpp<span class="special">></span>
+</pre>
+<p>
+          To register under Boost.Typeof:
+        </p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span>boost/typeof/boost/tree_node/associative_node.hpp<span class="special">></span>
+</pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.associative_node_base.tpl_param"></a><a class="link" href="associative_node_base.html#tree_node.reference.associative_node_base.tpl_param" title="Template Parameters">Template
+        Parameters</a>
+</h4></div></div></div>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+                  <p>
+                    Parameter
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Description
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Requirements
+                  </p>
+                </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">Derived</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    The most descendant type that will inherit from this one.
+                  </p>
+                </td>
+<td>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">Key</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    The key type.
+                  </p>
+                </td>
+<td>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">Data</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    The user data type.
+                  </p>
+                </td>
+<td>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">Selector</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    The type that determines the child container type.
+                  </p>
+                </td>
+<td>
+                  <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem"><p>
+                        <code class="literal">boost::is_recursive_selector<Selector></code>
+                        must evaluate to boost::mpl::true_.
+                      </p></li>
+<li class="listitem"><p>
+                        <code class="literal">boost::is_associative_selector<Selector></code>
+                        must evaluate to boost::mpl::true_.
+                      </p></li>
+</ul></div>
+                </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.associative_node_base.model_of"></a><a class="link" href="associative_node_base.html#tree_node.reference.associative_node_base.model_of" title="Model of">Model
+        of</a>
+</h4></div></div></div>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem"><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></li>
+<li class="listitem"><p>
+              <a class="link" href="../concepts/reversible_tree_node.html" title="Reversible Tree Node"><span class="bold"><strong>Reversible
+              Tree Node</strong></span></a> if <code class="literal">boost::container_gen<Selector,Key,Derived>::type</code>
+              returns a Reversible Container model
+            </p></li>
+<li class="listitem"><p>
+              <a class="link" href="../concepts/base_tree_node.html" title="Base Tree Node"><span class="bold"><strong>Base
+              Tree Node</strong></span></a>
+            </p></li>
+<li class="listitem"><p>
+              Default Constructible if <code class="computeroutput"><span class="identifier">Data</span></code> is Default Constructible
+            </p></li>
+</ul></div>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.associative_node_base.public_bases"></a><a class="link" href="associative_node_base.html#tree_node.reference.associative_node_base.public_bases" title="Public Base Classes">Public
+        Base Classes</a>
+</h4></div></div></div>
+<pre class="programlisting"><span class="identifier">tree_node_base</span><span class="special"><</span><span class="identifier">Derived</span><span class="special">></span>
+</pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.associative_node_base.members"></a><a class="link" href="associative_node_base.html#tree_node.reference.associative_node_base.members" title="Members">Members</a>
+</h4></div></div></div>
+<p>
+          Given:
+        </p>
+<pre class="programlisting"><span class="keyword">typedef</span> <span class="keyword">typename</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">container_gen</span><span class="special"><</span><span class="identifier">Selector</span><span class="special">,</span><span class="identifier">Key</span><span class="special">,</span><span class="identifier">Derived</span><span class="special">>::</span><span class="identifier">type</span>
+        <span class="identifier">children</span><span class="special">;</span>
+</pre>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+                  <p>
+                    Name
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Definition
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Scope
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Where defined
+                  </p>
+                </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+                  <p>
+                    Super type
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">typedef</span> <span class="identifier">tree_node_base</span><span class="special"><</span><span class="identifier">Derived</span><span class="special">></span> <span class="identifier">super_t</span><span class="special">;</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">public</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>
+                    Key type, data type, iterator range type, immutable iterator
+                    range type, allocator type, allocator reference type
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">struct</span> <span class="identifier">traits</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="keyword">typename</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">if_</span><span class="special"><</span>
+                <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_ptr_selector</span><span class="special"><</span><span class="identifier">Selector</span><span class="special">></span>
+              <span class="special">,</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">iterator_range</span><span class="special"><</span><span class="identifier">iterator</span><span class="special">></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">iterator</span><span class="special">,</span><span class="identifier">iterator</span><span class="special">></span>
+            <span class="special">>::</span><span class="identifier">type</span>
+            <span class="identifier">iterator_range</span><span class="special">;</span>
+    <span class="keyword">typedef</span> <span class="keyword">typename</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">if_</span><span class="special"><</span>
+                <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_ptr_selector</span><span class="special"><</span><span class="identifier">Selector</span><span class="special">></span>
+              <span class="special">,</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">iterator_range</span><span class="special"><</span><span class="identifier">const_iterator</span><span class="special">></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_iterator</span><span class="special">,</span><span class="identifier">const_iterator</span><span class="special">></span>
+            <span class="special">>::</span><span class="identifier">type</span>
+            <span class="identifier">const_iterator_range</span><span class="special">;</span>
+    <span class="keyword">typedef</span> <span class="keyword">typename</span> <span class="identifier">children</span><span class="special">::</span><span class="identifier">allocator_type</span>
+            <span class="identifier">allocator</span><span class="special">;</span>
+    <span class="keyword">typedef</span> <span class="identifier">allocator</span> <span class="keyword">const</span><span class="special">&</span>
+            <span class="identifier">allocator_reference</span><span class="special">;</span>
+<span class="special">};</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">public</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>
+                    Pointer type
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">typedef</span> <span class="keyword">typename</span> <span class="identifier">super_t</span><span class="special">::</span><span class="identifier">pointer</span> <span class="identifier">pointer</span><span class="special">;</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">public</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>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">typedef</span> <span class="keyword">typename</span> <span class="identifier">super_t</span><span class="special">::</span><span class="identifier">const_pointer</span> <span class="identifier">const_pointer</span><span class="special">;</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">public</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>
+                    Iterator type
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">typedef</span> <span class="keyword">typename</span> <span class="identifier">children</span><span class="special">::</span><span class="identifier">iterator</span> <span class="identifier">iterator</span><span class="special">;</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">public</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 iterator type
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">typedef</span> <span class="keyword">typename</span> <span class="identifier">children</span><span class="special">::</span><span class="identifier">const_iterator</span> <span class="identifier">const_iterator</span><span class="special">;</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">public</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>
+                    Reverse iterator type
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">typedef</span> <span class="keyword">typename</span> <span class="identifier">children</span><span class="special">::</span><span class="identifier">reverse_iterator</span> <span class="identifier">reverse_iterator</span><span class="special">;</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">public</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <a class="link" href="../concepts/reversible_tree_node.html" title="Reversible Tree Node"><span class="bold"><strong>Reversible Tree Node</strong></span></a>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Immutable reverse iterator type
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">typedef</span> <span class="keyword">typename</span> <span class="identifier">children</span><span class="special">::</span><span class="identifier">const_reverse_iterator</span>
+        <span class="identifier">const_reverse_iterator</span><span class="special">;</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">public</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <a class="link" href="../concepts/reversible_tree_node.html" title="Reversible Tree Node"><span class="bold"><strong>Reversible Tree Node</strong></span></a>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Emplacement constructor
+                  </p>
+                </td>
+<td>
+<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="special">...</span><span class="identifier">Args</span><span class="special">></span>
+<span class="keyword">explicit</span> <span class="identifier">associative_node_base</span><span class="special">(</span><span class="identifier">Args</span><span class="special">&&</span> <span class="special">...</span><span class="identifier">args</span><span class="special">);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">protected</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>
+                    Emplacement constructor with allocator
+                  </p>
+                </td>
+<td>
+<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="special">...</span><span class="identifier">Args</span><span class="special">></span>
+<span class="keyword">explicit</span> <span class="identifier">associative_node_base</span><span class="special">(</span>
+    <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">container</span><span class="special">::</span><span class="identifier">allocator_arg_t</span>
+  <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">traits</span><span class="special">::</span><span class="identifier">allocator_reference</span> <span class="identifier">allocator</span>
+  <span class="special">,</span> <span class="identifier">Args</span><span class="special">&&</span> <span class="special">...</span><span class="identifier">args</span>
+<span class="special">);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">protected</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>
+                    Derived copy constructor
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">associative_node_base</span><span class="special">(</span><span class="identifier">Derived</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">copy</span><span class="special">);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">protected</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <a class="link" href="../concepts/base_tree_node.html" title="Base Tree Node"><span class="bold"><strong>Base
+                    Tree Node</strong></span></a>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Derived copy constructor with allocator
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">associative_node_base</span><span class="special">(</span>
+    <span class="identifier">Derived</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">copy</span>
+  <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">traits</span><span class="special">::</span><span class="identifier">allocator_reference</span> <span class="identifier">allocator</span>
+<span class="special">);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">protected</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <a class="link" href="../concepts/base_tree_node.html" title="Base Tree Node"><span class="bold"><strong>Base
+                    Tree Node</strong></span></a>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Derived move constructor
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">associative_node_base</span><span class="special">(</span><span class="identifier">Derived</span><span class="special">&&</span> <span class="identifier">source</span><span class="special">);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">protected</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <a class="link" href="../concepts/base_tree_node.html" title="Base Tree Node"><span class="bold"><strong>Base
+                    Tree Node</strong></span></a>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Derived move constructor with allocator
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">associative_node_base</span><span class="special">(</span>
+    <span class="identifier">Derived</span><span class="special">&&</span> <span class="identifier">source</span>
+  <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">traits</span><span class="special">::</span><span class="identifier">allocator_reference</span> <span class="identifier">allocator</span>
+<span class="special">);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">protected</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <a class="link" href="../concepts/base_tree_node.html" title="Base Tree Node"><span class="bold"><strong>Base
+                    Tree Node</strong></span></a>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Base descendant cloning
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">void</span> <span class="identifier">clone_descendants</span><span class="special">(</span><span class="identifier">Derived</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">copy</span><span class="special">);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">protected</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <a class="link" href="../concepts/base_tree_node.html" title="Base Tree Node"><span class="bold"><strong>Base
+                    Tree Node</strong></span></a>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Base descendant movement
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">void</span> <span class="identifier">move_descendants</span><span class="special">(</span><span class="identifier">Derived</span><span class="special">&&</span> <span class="identifier">source</span><span class="special">);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">protected</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <a class="link" href="../concepts/base_tree_node.html" title="Base Tree Node"><span class="bold"><strong>Base
+                    Tree Node</strong></span></a>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Derived copy assignment
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">void</span> <span class="identifier">copy_assign</span><span class="special">(</span><span class="identifier">Derived</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">copy</span><span class="special">);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">protected</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <a class="link" href="../concepts/base_tree_node.html" title="Base Tree Node"><span class="bold"><strong>Base
+                    Tree Node</strong></span></a>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Derived move assignment
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">Derived</span><span class="special">&</span> <span class="keyword">operator</span><span class="special">=(</span><span class="identifier">Derived</span><span class="special">&&);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">protected</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <a class="link" href="../concepts/base_tree_node.html" title="Base Tree Node"><span class="bold"><strong>Base
+                    Tree Node</strong></span></a>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    User data member read-only access
+                  </p>
+                </td>
+<td>
+<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">FusionKey</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">lazy_enable_if</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">mpl</span><span class="special">::</span><span class="identifier">if_</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">mpl</span><span class="special">::</span><span class="identifier">eval_if</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">fusion</span><span class="special">::</span><span class="identifier">traits</span><span class="special">::</span><span class="identifier">is_sequence</span><span class="special"><</span><span class="identifier">Data</span><span class="special">>::</span><span class="identifier">type</span>
+          <span class="special">,</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">fusion</span><span class="special">::</span><span class="identifier">traits</span><span class="special">::</span><span class="identifier">is_associative</span><span class="special"><</span><span class="identifier">Data</span><span class="special">></span>
+          <span class="special">,</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">false_</span>
+        <span class="special">>::</span><span class="identifier">type</span>
+      <span class="special">,</span> <span class="identifier">result_of</span><span class="special">::</span><span class="identifier">has_key</span><span class="special"><</span>
+            <span class="identifier">associative_node_base</span><span class="special"><</span><span class="identifier">Derived</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">Selector</span><span class="special">></span>
+          <span class="special">,</span> <span class="identifier">FusionKey</span>
+        <span class="special">></span>
+      <span class="special">,</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">false_</span>
+    <span class="special">>::</span><span class="identifier">type</span>
+  <span class="special">,</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">fusion</span><span class="special">::</span><span class="identifier">result_of</span><span class="special">::</span><span class="identifier">at_key</span><span class="special"><</span><span class="identifier">Data</span> <span class="keyword">const</span><span class="special">,</span><span class="identifier">FusionKey</span><span class="special">></span>
+<span class="special">>::</span><span class="identifier">type</span>
+    <span class="keyword">operator</span><span class="special">[](</span><span class="identifier">FusionKey</span> <span class="keyword">const</span><span class="special">&)</span> <span class="keyword">const</span><span class="special">;</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">public</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">nary_node_base</span></code>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    User data member access
+                  </p>
+                </td>
+<td>
+<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">FusionKey</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">lazy_enable_if</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">mpl</span><span class="special">::</span><span class="identifier">if_</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">mpl</span><span class="special">::</span><span class="identifier">eval_if</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">fusion</span><span class="special">::</span><span class="identifier">traits</span><span class="special">::</span><span class="identifier">is_sequence</span><span class="special"><</span><span class="identifier">Data</span><span class="special">>::</span><span class="identifier">type</span>
+          <span class="special">,</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">fusion</span><span class="special">::</span><span class="identifier">traits</span><span class="special">::</span><span class="identifier">is_associative</span><span class="special"><</span><span class="identifier">Data</span><span class="special">></span>
+          <span class="special">,</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">false_</span>
+        <span class="special">>::</span><span class="identifier">type</span>
+      <span class="special">,</span> <span class="identifier">result_of</span><span class="special">::</span><span class="identifier">has_key</span><span class="special"><</span>
+            <span class="identifier">associative_node_base</span><span class="special"><</span><span class="identifier">Derived</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">Selector</span><span class="special">></span>
+          <span class="special">,</span> <span class="identifier">FusionKey</span>
+        <span class="special">></span>
+      <span class="special">,</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">false_</span>
+    <span class="special">>::</span><span class="identifier">type</span>
+  <span class="special">,</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">fusion</span><span class="special">::</span><span class="identifier">result_of</span><span class="special">::</span><span class="identifier">at_key</span><span class="special"><</span><span class="identifier">Data</span><span class="special">,</span><span class="identifier">FusionKey</span><span class="special">></span>
+<span class="special">>::</span><span class="identifier">type</span>
+    <span class="keyword">operator</span><span class="special">[](</span><span class="identifier">FusionKey</span> <span class="keyword">const</span><span class="special">&);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">public</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">nary_node_base</span></code>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Parent access
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">const_pointer</span> <span class="identifier">get_parent_ptr</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">public</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>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">pointer</span> <span class="identifier">get_parent_ptr</span><span class="special">();</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">public</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
+                  </p>
+                </td>
+<td>
+<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="special">...</span><span class="identifier">Args</span><span class="special">></span>
+<span class="identifier">iterator</span> <span class="identifier">emplace</span><span class="special">(</span><span class="keyword">typename</span> <span class="identifier">traits</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">Args</span><span class="special">&&</span> <span class="special">...</span><span class="identifier">args</span><span class="special">);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">public</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>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">iterator</span>
+    <span class="identifier">insert</span><span class="special">(</span>
+        <span class="keyword">typename</span> <span class="identifier">traits</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">Derived</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">child</span>
+    <span class="special">);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">public</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 move insertion
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">iterator</span>
+    <span class="identifier">insert</span><span class="special">(</span><span class="keyword">typename</span> <span class="identifier">traits</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">Derived</span><span class="special">&&</span> <span class="identifier">child</span><span class="special">);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">public</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 read-only access
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">const_iterator</span> <span class="identifier">cbegin</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+<span class="identifier">const_iterator</span> <span class="identifier">begin</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">public</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>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">iterator</span> <span class="identifier">begin</span><span class="special">();</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">public</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 read-only access
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">const_iterator</span> <span class="identifier">cend</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+<span class="identifier">const_iterator</span> <span class="identifier">end</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">public</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>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">iterator</span> <span class="identifier">end</span><span class="special">();</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">public</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 reverse range begin read-only access
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">const_reverse_iterator</span> <span class="identifier">crbegin</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+<span class="identifier">const_reverse_iterator</span> <span class="identifier">rbegin</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">public</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <a class="link" href="../concepts/reversible_tree_node.html" title="Reversible Tree Node"><span class="bold"><strong>Reversible Tree Node</strong></span></a>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Children reverse range begin access
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">reverse_iterator</span> <span class="identifier">rbegin</span><span class="special">();</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">public</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <a class="link" href="../concepts/reversible_tree_node.html" title="Reversible Tree Node"><span class="bold"><strong>Reversible Tree Node</strong></span></a>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Children reverse range past-the-end read-only access
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">const_reverse_iterator</span> <span class="identifier">crend</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+<span class="identifier">const_reverse_iterator</span> <span class="identifier">rend</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">public</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <a class="link" href="../concepts/reversible_tree_node.html" title="Reversible Tree Node"><span class="bold"><strong>Reversible Tree Node</strong></span></a>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Children reverse range past-the-end access
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">reverse_iterator</span> <span class="identifier">rend</span><span class="special">();</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">public</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <a class="link" href="../concepts/reversible_tree_node.html" title="Reversible Tree Node"><span class="bold"><strong>Reversible Tree Node</strong></span></a>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Children range size query
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">size_type</span> <span class="identifier">size</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">public</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 read-only search
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">const_iterator</span> <span class="identifier">find</span><span class="special">(</span><span class="keyword">typename</span> <span class="identifier">traits</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>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">public</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>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">iterator</span> <span class="identifier">find</span><span class="special">(</span><span class="keyword">typename</span> <span class="identifier">traits</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>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">public</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 read-only search lower bound
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">const_iterator</span> <span class="identifier">lower_bound</span><span class="special">(</span><span class="keyword">typename</span> <span class="identifier">traits</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>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">public</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 lower bound
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">iterator</span> <span class="identifier">lower_bound</span><span class="special">(</span><span class="keyword">typename</span> <span class="identifier">traits</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>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">public</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 read-only search upper bound
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">const_iterator</span> <span class="identifier">upper_bound</span><span class="special">(</span><span class="keyword">typename</span> <span class="identifier">traits</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>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">public</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 upper bound
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">iterator</span> <span class="identifier">upper_bound</span><span class="special">(</span><span class="keyword">typename</span> <span class="identifier">traits</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>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">public</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 read-only search range
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">typename</span> <span class="identifier">traits</span><span class="special">::</span><span class="identifier">const_iterator_range</span>
+    <span class="identifier">equal_range</span><span class="special">(</span><span class="keyword">typename</span> <span class="identifier">traits</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>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">public</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>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">typename</span> <span class="identifier">traits</span><span class="special">::</span><span class="identifier">iterator_range</span>
+    <span class="identifier">equal_range</span><span class="special">(</span><span class="keyword">typename</span> <span class="identifier">traits</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>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">public</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 children
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">size_type</span> <span class="identifier">erase</span><span class="special">(</span><span class="keyword">typename</span> <span class="identifier">traits</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>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">public</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>
+                    Leaf node query
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">bool</span> <span class="identifier">empty</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">public</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>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">void</span> <span class="identifier">clear</span><span class="special">();</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">public</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>
+                    Derived read-only access
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">const_pointer</span> <span class="identifier">get_derived</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">public</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <a class="link" href="../concepts/base_tree_node.html" title="Base Tree Node"><span class="bold"><strong>Base
+                    Tree Node</strong></span></a>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Derived access
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">pointer</span> <span class="identifier">get_derived</span><span class="special">();</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">public</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <a class="link" href="../concepts/base_tree_node.html" title="Base Tree Node"><span class="bold"><strong>Base
+                    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.associative_node_base.non_members"></a><a class="link" href="associative_node_base.html#tree_node.reference.associative_node_base.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>
+                    Definition
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Where defined
+                  </p>
+                </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+                  <p>
+                    User data read-only access
+                  </p>
+                </td>
+<td>
+<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">Derived</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">Selector</span><span class="special">></span>
+    <span class="keyword">typename</span> <span class="identifier">associative_node_base</span><span class="special"><</span>
+        <span class="identifier">Derived</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">Selector</span>
+    <span class="special">>::</span><span class="identifier">traits</span><span class="special">::</span><span class="identifier">data_type</span> <span class="keyword">const</span><span class="special">&</span>
+        <span class="identifier">get</span><span class="special">(</span>
+            <span class="identifier">associative_node_base</span><span class="special"><</span><span class="identifier">Derived</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">Selector</span><span class="special">></span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">node</span>
+          <span class="special">,</span> <span class="identifier">data_key</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">key</span>
+        <span class="special">);</span>
+
+    <span class="keyword">template</span> <span class="special"><</span>
+        <span class="keyword">typename</span> <span class="identifier">DataKey</span>
+      <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Derived</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">Selector</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">std</span><span class="special">::</span><span class="identifier">tr1</span><span class="special">::</span><span class="identifier">is_same</span><span class="special"><</span><span class="identifier">DataKey</span><span class="special">,</span><span class="identifier">data_key</span><span class="special">></span>
+      <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">associative_node_base</span><span class="special"><</span>
+            <span class="identifier">Derived</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">Selector</span>
+        <span class="special">>::</span><span class="identifier">traits</span><span class="special">::</span><span class="identifier">data_type</span> <span class="keyword">const</span><span class="special">&</span>
+    <span class="special">>::</span><span class="identifier">type</span>
+        <span class="identifier">get</span><span class="special">(</span><span class="identifier">associative_node_base</span><span class="special"><</span><span class="identifier">Derived</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">Selector</span><span class="special">></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>
+                </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>
+                    User data access
+                  </p>
+                </td>
+<td>
+<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">Derived</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">Selector</span><span class="special">></span>
+    <span class="keyword">typename</span> <span class="identifier">associative_node_base</span><span class="special"><</span>
+        <span class="identifier">Derived</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">Selector</span>
+    <span class="special">>::</span><span class="identifier">traits</span><span class="special">::</span><span class="identifier">data_type</span><span class="special">&</span>
+        <span class="identifier">get</span><span class="special">(</span>
+            <span class="identifier">associative_node_base</span><span class="special"><</span><span class="identifier">Derived</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">Selector</span><span class="special">>&</span> <span class="identifier">node</span>
+          <span class="special">,</span> <span class="identifier">data_key</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">key</span>
+        <span class="special">);</span>
+
+    <span class="keyword">template</span> <span class="special"><</span>
+        <span class="keyword">typename</span> <span class="identifier">DataKey</span>
+      <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Derived</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">Selector</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">std</span><span class="special">::</span><span class="identifier">tr1</span><span class="special">::</span><span class="identifier">is_same</span><span class="special"><</span><span class="identifier">DataKey</span><span class="special">,</span><span class="identifier">data_key</span><span class="special">></span>
+      <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">associative_node_base</span><span class="special"><</span>
+            <span class="identifier">Derived</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">Selector</span>
+        <span class="special">>::</span><span class="identifier">traits</span><span class="special">::</span><span class="identifier">data_type</span><span class="special">&</span>
+    <span class="special">>::</span><span class="identifier">type</span>
+        <span class="identifier">get</span><span class="special">(</span><span class="identifier">associative_node_base</span><span class="special"><</span><span class="identifier">Derived</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">Selector</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>
+                </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>
+                    User data modification
+                  </p>
+                </td>
+<td>
+<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">Derived</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">Selector</span>
+      <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">V</span>
+    <span class="special">></span>
+    <span class="keyword">void</span>
+        <span class="identifier">put</span><span class="special">(</span>
+            <span class="identifier">associative_node_base</span><span class="special"><</span><span class="identifier">Derived</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">Selector</span><span class="special">>&</span> <span class="identifier">node</span>
+          <span class="special">,</span> <span class="identifier">data_key</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">key</span>
+          <span class="special">,</span> <span class="identifier">V</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">value</span>
+        <span class="special">);</span>
+<span class="special">}}</span>  <span class="comment">// namespace boost::tree_node</span>
+</pre>
+                </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>
+                    Key-value read-only access
+                  </p>
+                </td>
+<td>
+<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">Derived</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">Selector</span>
+      <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">FusionKey</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">lazy_enable_if</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">mpl</span><span class="special">::</span><span class="identifier">if_</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">mpl</span><span class="special">::</span><span class="identifier">eval_if</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">fusion</span><span class="special">::</span><span class="identifier">traits</span><span class="special">::</span><span class="identifier">is_sequence</span><span class="special"><</span><span class="identifier">Data</span><span class="special">>::</span><span class="identifier">type</span>
+              <span class="special">,</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">fusion</span><span class="special">::</span><span class="identifier">traits</span><span class="special">::</span><span class="identifier">is_associative</span><span class="special"><</span><span class="identifier">Data</span><span class="special">></span>
+              <span class="special">,</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">false_</span>
+            <span class="special">>::</span><span class="identifier">type</span>
+          <span class="special">,</span> <span class="identifier">result_of</span><span class="special">::</span><span class="identifier">has_key</span><span class="special"><</span>
+                <span class="identifier">associative_node_base</span><span class="special"><</span><span class="identifier">Derived</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">Selector</span><span class="special">></span>
+              <span class="special">,</span> <span class="identifier">FusionKey</span>
+            <span class="special">></span>
+          <span class="special">,</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">false_</span>
+        <span class="special">>::</span><span class="identifier">type</span>
+      <span class="special">,</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">fusion</span><span class="special">::</span><span class="identifier">result_of</span><span class="special">::</span><span class="identifier">at_key</span><span class="special"><</span><span class="identifier">Data</span> <span class="keyword">const</span><span class="special">,</span><span class="identifier">FusionKey</span><span class="special">></span>
+    <span class="special">>::</span><span class="identifier">type</span>
+        <span class="identifier">get</span><span class="special">(</span>
+            <span class="identifier">associative_node_base</span><span class="special"><</span><span class="identifier">Derived</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">Selector</span><span class="special">></span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">node</span>
+          <span class="special">,</span> <span class="identifier">FusionKey</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">key</span>
+        <span class="special">);</span>
+
+    <span class="keyword">template</span> <span class="special"><</span>
+        <span class="keyword">typename</span> <span class="identifier">FusionKey</span>
+      <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Derived</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">Selector</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">lazy_enable_if</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">mpl</span><span class="special">::</span><span class="identifier">if_</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">mpl</span><span class="special">::</span><span class="identifier">eval_if</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">fusion</span><span class="special">::</span><span class="identifier">traits</span><span class="special">::</span><span class="identifier">is_sequence</span><span class="special"><</span><span class="identifier">Data</span><span class="special">>::</span><span class="identifier">type</span>
+              <span class="special">,</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">fusion</span><span class="special">::</span><span class="identifier">traits</span><span class="special">::</span><span class="identifier">is_associative</span><span class="special"><</span><span class="identifier">Data</span><span class="special">></span>
+              <span class="special">,</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">false_</span>
+            <span class="special">>::</span><span class="identifier">type</span>
+          <span class="special">,</span> <span class="identifier">result_of</span><span class="special">::</span><span class="identifier">has_key</span><span class="special"><</span>
+                <span class="identifier">associative_node_base</span><span class="special"><</span><span class="identifier">Derived</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">Selector</span><span class="special">></span>
+              <span class="special">,</span> <span class="identifier">FusionKey</span>
+            <span class="special">></span>
+          <span class="special">,</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">false_</span>
+        <span class="special">>::</span><span class="identifier">type</span>
+      <span class="special">,</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">fusion</span><span class="special">::</span><span class="identifier">result_of</span><span class="special">::</span><span class="identifier">at_key</span><span class="special"><</span><span class="identifier">Data</span> <span class="keyword">const</span><span class="special">,</span><span class="identifier">FusionKey</span><span class="special">></span>
+    <span class="special">>::</span><span class="identifier">type</span>
+        <span class="identifier">get</span><span class="special">(</span><span class="identifier">associative_node_base</span><span class="special"><</span><span class="identifier">Derived</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">Selector</span><span class="special">></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>
+                </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>
+                    Key-value access
+                  </p>
+                </td>
+<td>
+<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">Derived</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">Selector</span>
+      <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">FusionKey</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">lazy_enable_if</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">mpl</span><span class="special">::</span><span class="identifier">if_</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">mpl</span><span class="special">::</span><span class="identifier">eval_if</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">fusion</span><span class="special">::</span><span class="identifier">traits</span><span class="special">::</span><span class="identifier">is_sequence</span><span class="special"><</span><span class="identifier">Data</span><span class="special">>::</span><span class="identifier">type</span>
+              <span class="special">,</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">fusion</span><span class="special">::</span><span class="identifier">traits</span><span class="special">::</span><span class="identifier">is_associative</span><span class="special"><</span><span class="identifier">Data</span><span class="special">></span>
+              <span class="special">,</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">false_</span>
+            <span class="special">>::</span><span class="identifier">type</span>
+          <span class="special">,</span> <span class="identifier">result_of</span><span class="special">::</span><span class="identifier">has_key</span><span class="special"><</span>
+                <span class="identifier">associative_node_base</span><span class="special"><</span><span class="identifier">Derived</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">Selector</span><span class="special">></span>
+              <span class="special">,</span> <span class="identifier">FusionKey</span>
+            <span class="special">></span>
+          <span class="special">,</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">false_</span>
+        <span class="special">>::</span><span class="identifier">type</span>
+      <span class="special">,</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">fusion</span><span class="special">::</span><span class="identifier">result_of</span><span class="special">::</span><span class="identifier">at_key</span><span class="special"><</span><span class="identifier">Data</span><span class="special">,</span><span class="identifier">FusionKey</span><span class="special">></span>
+    <span class="special">>::</span><span class="identifier">type</span>
+        <span class="identifier">get</span><span class="special">(</span>
+            <span class="identifier">associative_node_base</span><span class="special"><</span><span class="identifier">Derived</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">Selector</span><span class="special">>&</span> <span class="identifier">node</span>
+          <span class="special">,</span> <span class="identifier">FusionKey</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">key</span>
+        <span class="special">);</span>
+
+    <span class="keyword">template</span> <span class="special"><</span>
+        <span class="keyword">typename</span> <span class="identifier">FusionKey</span>
+      <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Derived</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">Selector</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">lazy_enable_if</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">mpl</span><span class="special">::</span><span class="identifier">if_</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">mpl</span><span class="special">::</span><span class="identifier">eval_if</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">fusion</span><span class="special">::</span><span class="identifier">traits</span><span class="special">::</span><span class="identifier">is_sequence</span><span class="special"><</span><span class="identifier">Data</span><span class="special">>::</span><span class="identifier">type</span>
+              <span class="special">,</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">fusion</span><span class="special">::</span><span class="identifier">traits</span><span class="special">::</span><span class="identifier">is_associative</span><span class="special"><</span><span class="identifier">Data</span><span class="special">></span>
+              <span class="special">,</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">false_</span>
+            <span class="special">>::</span><span class="identifier">type</span>
+          <span class="special">,</span> <span class="identifier">result_of</span><span class="special">::</span><span class="identifier">has_key</span><span class="special"><</span>
+                <span class="identifier">associative_node_base</span><span class="special"><</span><span class="identifier">Derived</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">Selector</span><span class="special">></span>
+              <span class="special">,</span> <span class="identifier">FusionKey</span>
+            <span class="special">></span>
+          <span class="special">,</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">false_</span>
+        <span class="special">>::</span><span class="identifier">type</span>
+      <span class="special">,</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">fusion</span><span class="special">::</span><span class="identifier">result_of</span><span class="special">::</span><span class="identifier">at_key</span><span class="special"><</span><span class="identifier">Data</span><span class="special">,</span><span class="identifier">FusionKey</span><span class="special">></span>
+    <span class="special">>::</span><span class="identifier">type</span>
+        <span class="identifier">get</span><span class="special">(</span><span class="identifier">associative_node_base</span><span class="special"><</span><span class="identifier">Derived</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">Selector</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>
+                </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>
+                    Key-value modification
+                  </p>
+                </td>
+<td>
+<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">Derived</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">Selector</span>
+      <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">FusionKey</span>
+      <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">V</span>
+    <span class="special">></span>
+    <span class="keyword">void</span>
+        <span class="identifier">put</span><span class="special">(</span>
+            <span class="identifier">associative_node_base</span><span class="special"><</span><span class="identifier">Derived</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">Selector</span><span class="special">>&</span> <span class="identifier">node</span>
+          <span class="special">,</span> <span class="identifier">FusionKey</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">key</span>
+          <span class="special">,</span> <span class="identifier">V</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">value</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="keyword">typename</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">if_</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">mpl</span><span class="special">::</span><span class="identifier">eval_if</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">fusion</span><span class="special">::</span><span class="identifier">traits</span><span class="special">::</span><span class="identifier">is_sequence</span><span class="special"><</span><span class="identifier">Data</span><span class="special">>::</span><span class="identifier">type</span>
+                <span class="special">,</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">fusion</span><span class="special">::</span><span class="identifier">traits</span><span class="special">::</span><span class="identifier">is_associative</span><span class="special"><</span><span class="identifier">Data</span><span class="special">></span>
+                <span class="special">,</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">false_</span>
+                <span class="special">>::</span><span class="identifier">type</span>
+              <span class="special">,</span> <span class="identifier">result_of</span><span class="special">::</span><span class="identifier">has_key</span><span class="special"><</span>
+                  <span class="identifier">associative_node_base</span><span class="special"><</span><span class="identifier">Derived</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">Selector</span><span class="special">></span>
+                <span class="special">,</span> <span class="identifier">FusionKey</span>
+                <span class="special">></span>
+              <span class="special">,</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">false_</span>
+              <span class="special">>::</span><span class="identifier">type</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">true_</span>
+            <span class="special">>::</span><span class="identifier">type</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">true_</span><span class="special">()</span>
+        <span class="special">);</span>
+<span class="special">}}</span>  <span class="comment">// namespace boost::tree_node</span>
+</pre>
+                </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>
+<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-2013 Cromwell D. Enage<p>
+        Distributed under the Boost Software License, Version 1.0. (See accompanying
+        file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="associative_node_gen.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="assoc_node_base_gen.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/associative_node_gen.html
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/associative_node_gen.html	2013-07-07 14:52:52 EDT (Sun, 07 Jul 2013)	(r84977)
@@ -0,0 +1,192 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>associative_node_gen<Selector></title>
+<link rel="stylesheet" href="http://www.boost.org/doc/libs/release/doc/src/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.77.1">
+<link rel="home" href="../../index.html" title="Chapter 1. tree_node 0.5">
+<link rel="up" href="../reference.html" title="Reference">
+<link rel="prev" href="associative_node.html" title="associative_node<Key,Data,Selector>">
+<link rel="next" href="associative_node_base.html" title="associative_node_base<Derived,Key,Data,Selector>">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr><td valign="top"><img alt="C++ Boost" width="277" height="86" src="../../../../../../boost.png"></td></tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="associative_node.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="associative_node_base.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="tree_node.reference.associative_node_gen"></a><a class="link" href="associative_node_gen.html" title="associative_node_gen<Selector>"><code class="computeroutput"><span class="identifier">associative_node_gen</span><span class="special"><</span><span class="identifier">Selector</span><span class="special">></span></code></a>
+</h3></div></div></div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.associative_node_gen.synopsis"></a><a class="link" href="associative_node_gen.html#tree_node.reference.associative_node_gen.synopsis" title="Synopsis">Synopsis</a>
+</h4></div></div></div>
+<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">Selector</span> <span class="special">=</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_mapS</span><span class="special">></span>
+    <span class="keyword">struct</span> <span class="identifier">associative_node_gen</span>
+    <span class="special">{</span>
+        <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">Key</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Data</span><span class="special">></span>
+        <span class="keyword">struct</span> <span class="identifier">apply</span>
+        <span class="special">{</span>
+            <span class="keyword">typedef</span> <span class="identifier">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">Selector</span><span class="special">></span> <span class="identifier">type</span><span class="special">;</span>
+        <span class="special">};</span>
+    <span class="special">};</span>
+
+    <span class="keyword">typedef</span> <span class="identifier">associative_node_gen</span><span class="special"><></span> <span class="identifier">associative_node_default_gen</span><span class="special">;</span>
+<span class="special">}}</span>  <span class="comment">// namespace boost::tree_node</span>
+</pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.associative_node_gen.description"></a><a class="link" href="associative_node_gen.html#tree_node.reference.associative_node_gen.description" title="Description">Description</a>
+</h4></div></div></div>
+<p>
+          Minimalist selector that can be passed on to generic functions and/or data
+          structures that use <a class="link" href="../concepts/associative_tree_node.html" title="Associative Tree Node"><span class="bold"><strong>Associative Tree Node</strong></span></a> models.
+        </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.associative_node_gen.definition"></a><a class="link" href="associative_node_gen.html#tree_node.reference.associative_node_gen.definition" title="Where defined">Where
+        defined</a>
+</h4></div></div></div>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span>boost/tree_node/associative_node.hpp<span class="special">></span>
+</pre>
+<p>
+          To register under Boost.Typeof:
+        </p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span>boost/typeof/boost/tree_node/associative_node.hpp<span class="special">></span>
+</pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.associative_node_gen.model_of"></a><a class="link" href="associative_node_gen.html#tree_node.reference.associative_node_gen.model_of" title="Model of">Model
+        of</a>
+</h4></div></div></div>
+<p>
+          <a class="link" href="../concepts/node_type_generator.html" title="Node Type Generator"><span class="bold"><strong>Node
+          Type Generator</strong></span></a>
+        </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.associative_node_gen.tpl_param"></a><a class="link" href="associative_node_gen.html#tree_node.reference.associative_node_gen.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">Selector</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    The type that determines the child container type of <a class="link" href="associative_node.html" title="associative_node<Key,Data,Selector>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">associative_node</span></code></a>.
+                  </p>
+                </td>
+<td>
+                  <div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem"><p>
+                        <code class="literal">boost::is_recursive_selector<Selector></code>
+                        must evaluate to boost::mpl::true_.
+                      </p></li>
+<li class="listitem"><p>
+                        <code class="literal">boost::is_associative_selector<Selector></code>
+                        must evaluate to boost::mpl::true_.
+                      </p></li>
+</ul></div>
+                </td>
+<td>
+                  <p>
+                    boost::ptr_mapS
+                  </p>
+                </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.associative_node_gen.expressions"></a><a class="link" href="associative_node_gen.html#tree_node.reference.associative_node_gen.expressions" title="Expression Semantics">Expression
+        Semantics</a>
+</h4></div></div></div>
+<p>
+          Let <code class="computeroutput"><span class="identifier">Derived</span></code> be the type
+          that will inherit from <a class="link" href="associative_node_base.html" title="associative_node_base<Derived,Key,Data,Selector>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">associative_node_base</span></code></a>.
+        </p>
+<p>
+          Let <code class="computeroutput"><span class="identifier">Key</span></code> be the key type.
+        </p>
+<p>
+          Let <code class="computeroutput"><span class="identifier">Data</span></code> be the user data
+          type.
+        </p>
+<p>
+          Let <code class="computeroutput"><span class="identifier">Selector</span></code> be a valid
+          <code class="computeroutput"><span class="identifier">associative_node_gen</span></code> template
+          argument.
+        </p>
+<pre class="programlisting"><span class="keyword">typedef</span> boost::mpl::apply_wrap2<span class="special"><</span>
+    <span class="identifier">associative_node_gen</span><span class="special"><</span><span class="identifier">Selector</span><span class="special">></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">type</span> <span class="identifier">r</span><span class="special">;</span>
+</pre>
+<p>
+          <span class="bold"><strong>Return type:</strong></span> <code class="literal"><a class="link" href="associative_node.html" title="associative_node<Key,Data,Selector>">tree_node::associative_node</a><Key,Data,Selector></code>
+        </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.associative_node_gen.complexity"></a><a class="link" href="associative_node_gen.html#tree_node.reference.associative_node_gen.complexity" title="Complexity">Complexity</a>
+</h4></div></div></div>
+<p>
+          Compile time.
+        </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-2013 Cromwell D. Enage<p>
+        Distributed under the Boost Software License, Version 1.0. (See accompanying
+        file LICENSE_1_0.txt or copy at http://www.boost.org/LICENSE_1_0.txt)
+      </p>
+</div></td>
+</tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="associative_node.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="associative_node_base.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/at_key.html
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/at_key.html	2013-07-07 14:52:52 EDT (Sun, 07 Jul 2013)	(r84977)
@@ -0,0 +1,134 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>at_key<Key></title>
+<link rel="stylesheet" href="http://www.boost.org/doc/libs/release/doc/src/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.77.1">
+<link rel="home" href="../../index.html" title="Chapter 1. tree_node 0.5">
+<link rel="up" href="../reference.html" title="Reference">
+<link rel="prev" href="get_keys.html" title="result_of::get_keys<Node>">
+<link rel="next" href="value_at_key.html" title="result_of::value_at_key<Node,Key>">
+</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="get_keys.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="value_at_key.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="tree_node.reference.at_key"></a><a class="link" href="at_key.html" title="at_key<Key>"><code class="computeroutput"><span class="identifier">at_key</span><span class="special"><</span><span class="identifier">Key</span><span class="special">></span></code></a>
+</h3></div></div></div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.at_key.func_synopsis"></a><a class="link" href="at_key.html#tree_node.reference.at_key.func_synopsis" title="Function Object Synopsis">Function
+        Object Synopsis</a>
+</h4></div></div></div>
+<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">struct</span> <span class="identifier">at_key</span>
+    <span class="special">{</span>
+        <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">Node</span><span class="special">></span>
+        <span class="keyword">typename</span> <span class="identifier">result_of</span><span class="special">::</span><span class="identifier">at_key</span><span class="special"><</span><span class="identifier">Node</span> <span class="keyword">const</span><span class="special">,</span><span class="identifier">Key</span><span class="special">>::</span><span class="identifier">type</span>
+            <span class="keyword">operator</span><span class="special">()(</span><span class="identifier">Node</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">node</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
+
+        <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">Node</span><span class="special">></span>
+        <span class="keyword">typename</span> <span class="identifier">result_of</span><span class="special">::</span><span class="identifier">at_key</span><span class="special"><</span><span class="identifier">Node</span><span class="special">,</span><span class="identifier">Key</span><span class="special">>::</span><span class="identifier">type</span>
+            <span class="keyword">operator</span><span class="special">()(</span><span class="identifier">Node</span><span class="special">&</span> <span class="identifier">node</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>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.at_key.func_description"></a><a class="link" href="at_key.html#tree_node.reference.at_key.func_description" title="Function Object Description">Function
+        Object Description</a>
+</h4></div></div></div>
+<p>
+          The call operators of this Unary Function return the result of using
+          <code class="computeroutput"><span class="identifier">get</span></code> to access the value
+          that the <code class="computeroutput"><span class="identifier">node</span></code> argument
+          associates with key type <code class="computeroutput"><span class="identifier">Key</span></code>.
+        </p>
+<p>
+          A Container
+          model that stores instances of a <a class="link" href="../concepts/tree_node.html" title="Tree Node"><span class="bold"><strong>Tree Node</strong></span></a> model (e.g. <a class="link" href="binode_container.html" title="binode_container<NodeGenerator,T,Balancer>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">binode_container</span></code></a>) can define its
+          iterator types by using this type in conjunction with the boost::transform_iterator adaptor and
+          the appropriate <a class="link" href="../concepts/tree_node_iterator.html" title="Tree Node Iterator"><span class="bold"><strong>Tree Node Iterator</strong></span></a> model (e.g. <a class="link" href="in_order_iterator.html" title="in_order_iterator<Node,IsReverse>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">in_order_iterator</span></code></a>), so that the
+          container's iterator type is convertible to its <code class="computeroutput"><span class="keyword">const</span></code>
+          iterator type.
+        </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.at_key.result_of"></a><a class="link" href="at_key.html#tree_node.reference.at_key.result_of" title="Return Type Metafunction Synopsis">Return Type Metafunction
+        Synopsis</a>
+</h4></div></div></div>
+<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">namespace</span> <span class="identifier">result_of</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">struct</span> <span class="identifier">at_key_impl</span>
+    <span class="special">{</span>
+        <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">Node</span><span class="special">></span>
+        <span class="keyword">struct</span> <span class="identifier">apply</span>
+        <span class="special">{</span>
+            <span class="keyword">typedef</span> <span class="identifier">BOOST_TYPEOF_TPL</span><span class="special">(</span>
+                        <span class="identifier">get</span><span class="special">(::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">get_reference</span><span class="special"><</span><span class="identifier">Node</span><span class="special">>(),</span> <span class="identifier">Key</span><span class="special">())</span>
+                    <span class="special">)</span>
+                    <span class="identifier">type</span><span class="special">;</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">Node</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Key</span><span class="special">></span>
+    <span class="keyword">struct</span> <span class="identifier">at_key</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">apply_wrap1</span><span class="special"><</span><span class="identifier">at_key_impl</span><span class="special"><</span><span class="identifier">Key</span><span class="special">>,</span><span class="identifier">Node</span><span class="special">></span>
+    <span class="special">{</span>
+    <span class="special">};</span>
+<span class="special">}}}</span>  <span class="comment">// namespace boost::tree_node::result_of</span>
+</pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.at_key.result_of_description"></a><a class="link" href="at_key.html#tree_node.reference.at_key.result_of_description" title="Return Type Metafunction Description">Return
+        Type Metafunction Description</a>
+</h4></div></div></div>
+<p>
+          Let <code class="computeroutput"><span class="identifier">Node</span></code> be a (possibly
+          <code class="computeroutput"><span class="keyword">const</span></code>-qualified) <a class="link" href="../concepts/tree_node.html" title="Tree Node"><span class="bold"><strong>Tree Node</strong></span></a> model.
+        </p>
+<p>
+          Let <code class="computeroutput"><span class="identifier">Key</span></code> be a type for which
+          <code class="literal"><a class="link" href="has_key.html#tree_node.reference.has_key.result_of" title="Return Type Metafunction Synopsis">tree_node::result_of::has_key</a><Node,Key></code>
+          evaluates to boost::mpl::true_.
+        </p>
+<pre class="programlisting"><span class="keyword">typedef</span> <span class="identifier">result_of</span><span class="special">::</span><span class="identifier">at_key</span><span class="special"><</span><span class="identifier">Node</span><span class="special">,</span><span class="identifier">Key</span><span class="special">>::</span><span class="identifier">type</span> <span class="identifier">r</span><span class="special">;</span>
+</pre>
+<p>
+          <span class="bold"><strong>Return type:</strong></span> The type of the result of
+          using <code class="computeroutput"><span class="identifier">get</span></code> to access the
+          value associated with key type <code class="computeroutput"><span class="identifier">Key</span></code>
+          in <code class="computeroutput"><span class="identifier">Node</span></code>.
+        </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.at_key.definition"></a><a class="link" href="at_key.html#tree_node.reference.at_key.definition" title="Where defined">Where defined</a>
+</h4></div></div></div>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span>boost/tree_node/intrinsic/at_key.hpp<span class="special">></span>
+</pre>
+</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-2013 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="get_keys.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="value_at_key.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/avl_balancer.html
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/avl_balancer.html	2013-07-07 14:52:52 EDT (Sun, 07 Jul 2013)	(r84977)
@@ -0,0 +1,90 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>adelson_velskii_landis_balancer</title>
+<link rel="stylesheet" href="http://www.boost.org/doc/libs/release/doc/src/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.77.1">
+<link rel="home" href="../../index.html" title="Chapter 1. tree_node 0.5">
+<link rel="up" href="../reference.html" title="Reference">
+<link rel="prev" href="red_black_balancer.html" title="red_black_balancer">
+<link rel="next" href="binary_node.html" title="binary_node<T,Size,AllocatorSelector>">
+</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="red_black_balancer.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="binary_node.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="tree_node.reference.avl_balancer"></a><a class="link" href="avl_balancer.html" title="adelson_velskii_landis_balancer"><code class="computeroutput"><span class="identifier">adelson_velskii_landis_balancer</span></code></a>
+</h3></div></div></div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.avl_balancer.synopsis"></a><a class="link" href="avl_balancer.html#tree_node.reference.avl_balancer.synopsis" title="Synopsis">Synopsis</a>
+</h4></div></div></div>
+<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">struct</span> <span class="identifier">adelson_velskii_landis_balancer</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">static</span> <span class="identifier">NodePointer</span> <span class="identifier">post_insert</span><span class="special">(</span><span class="identifier">NodePointer</span> <span class="identifier">node_ptr</span><span class="special">);</span>
+
+        <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">Node</span><span class="special">></span>
+        <span class="keyword">static</span> <span class="keyword">bool</span> <span class="identifier">choose_predecessor</span><span class="special">(</span><span class="identifier">Node</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">Node</span><span class="special">></span>
+        <span class="keyword">static</span> <span class="keyword">bool</span> <span class="identifier">pre_erase</span><span class="special">(</span><span class="identifier">Node</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">static</span> <span class="identifier">NodePointer</span> <span class="identifier">post_erase_left</span><span class="special">(</span><span class="identifier">NodePointer</span> <span class="identifier">node_ptr</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">static</span> <span class="identifier">NodePointer</span> <span class="identifier">post_erase_right</span><span class="special">(</span><span class="identifier">NodePointer</span> <span class="identifier">node_ptr</span><span class="special">);</span>
+
+    <span class="special">};</span>
+
+    <span class="keyword">namespace</span> <span class="identifier">balancer</span> <span class="special">{</span>
+
+        <span class="keyword">typedef</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">adelson_velskii_landis_balancer</span>
+                <span class="identifier">adelson_velskii_landis</span><span class="special">;</span>
+    <span class="special">}</span>  <span class="comment">// namespace balancer</span>
+<span class="special">}}</span>  <span class="comment">// namespace boost::tree_node</span>
+</pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.avl_balancer.description"></a><a class="link" href="avl_balancer.html#tree_node.reference.avl_balancer.description" title="Description">Description</a>
+</h4></div></div></div>
+<p>
+          TODO.
+        </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.avl_balancer.definition"></a><a class="link" href="avl_balancer.html#tree_node.reference.avl_balancer.definition" title="Where defined">Where
+        defined</a>
+</h4></div></div></div>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span>boost/tree_node/balancer/adelson_velskii_landis.hpp<span class="special">></span>
+</pre>
+<p>
+          To register under Boost.Typeof:
+        </p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span>boost/typeof/boost/tree_node/balancer/adelson_velskii_landis.hpp<span class="special">></span>
+</pre>
+</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-2013 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="red_black_balancer.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="binary_node.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/binary_descendant.html
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/binary_descendant.html	2013-07-07 14:52:52 EDT (Sun, 07 Jul 2013)	(r84977)
@@ -0,0 +1,68 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>binary_descendant()</title>
+<link rel="stylesheet" href="http://www.boost.org/doc/libs/release/doc/src/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.77.1">
+<link rel="home" href="../../index.html" title="Chapter 1. tree_node 0.5">
+<link rel="up" href="../reference.html" title="Reference">
+<link rel="prev" href="binary_index_of.html" title="binary_index_of()">
+<link rel="next" href="binary_descendant_at_index.html" title="binary_descendant_at_index()">
+</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="binary_index_of.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="binary_descendant_at_index.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="tree_node.reference.binary_descendant"></a><a class="link" href="binary_descendant.html" title="binary_descendant()"><code class="computeroutput"><span class="identifier">binary_descendant</span><span class="special">()</span></code></a>
+</h3></div></div></div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.binary_descendant.synopsis"></a><a class="link" href="binary_descendant.html#tree_node.reference.binary_descendant.synopsis" title="Synopsis">Synopsis</a>
+</h4></div></div></div>
+<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">Value</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Compare</span><span class="special">></span>
+    <span class="identifier">NodePointer</span>
+        <span class="identifier">binary_descendant</span><span class="special">(</span>
+            <span class="identifier">NodePointer</span> <span class="identifier">node_ptr</span>
+          <span class="special">,</span> <span class="identifier">Value</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">value</span>
+          <span class="special">,</span> <span class="identifier">Compare</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">compare</span>
+        <span class="special">);</span>
+<span class="special">}}</span>  <span class="comment">// namespace boost::tree_node</span>
+</pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.binary_descendant.description"></a><a class="link" href="binary_descendant.html#tree_node.reference.binary_descendant.description" title="Description">Description</a>
+</h4></div></div></div>
+<p>
+          TODO.
+        </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.binary_descendant.definition"></a><a class="link" href="binary_descendant.html#tree_node.reference.binary_descendant.definition" title="Where defined">Where
+        defined</a>
+</h4></div></div></div>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span>boost/tree_node/algorithm/binary_descendant.hpp<span class="special">></span>
+</pre>
+</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-2013 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="binary_index_of.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="binary_descendant_at_index.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/binary_descendant_at_index.html
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/binary_descendant_at_index.html	2013-07-07 14:52:52 EDT (Sun, 07 Jul 2013)	(r84977)
@@ -0,0 +1,63 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>binary_descendant_at_index()</title>
+<link rel="stylesheet" href="http://www.boost.org/doc/libs/release/doc/src/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.77.1">
+<link rel="home" href="../../index.html" title="Chapter 1. tree_node 0.5">
+<link rel="up" href="../reference.html" title="Reference">
+<link rel="prev" href="binary_descendant.html" title="binary_descendant()">
+<link rel="next" href="binary_lower_bound.html" title="binary_lower_bound()">
+</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="binary_descendant.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="binary_lower_bound.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="tree_node.reference.binary_descendant_at_index"></a><a class="link" href="binary_descendant_at_index.html" title="binary_descendant_at_index()"><code class="computeroutput"><span class="identifier">binary_descendant_at_index</span><span class="special">()</span></code></a>
+</h3></div></div></div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.binary_descendant_at_index.synopsis"></a><a class="link" href="binary_descendant_at_index.html#tree_node.reference.binary_descendant_at_index.synopsis" title="Synopsis">Synopsis</a>
+</h4></div></div></div>
+<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">Index</span><span class="special">></span>
+    <span class="identifier">NodePointer</span> <span class="identifier">binary_descendant_at_index</span><span class="special">(</span><span class="identifier">NodePointer</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">Index</span> <span class="identifier">index</span><span class="special">);</span>
+<span class="special">}}</span>  <span class="comment">// namespace boost::tree_node</span>
+</pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.binary_descendant_at_index.description"></a><a class="link" href="binary_descendant_at_index.html#tree_node.reference.binary_descendant_at_index.description" title="Description">Description</a>
+</h4></div></div></div>
+<p>
+          TODO.
+        </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.binary_descendant_at_index.definition"></a><a class="link" href="binary_descendant_at_index.html#tree_node.reference.binary_descendant_at_index.definition" title="Where defined">Where
+        defined</a>
+</h4></div></div></div>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span>boost/tree_node/algorithm/binary_descendant_at_index.hpp<span class="special">></span>
+</pre>
+</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-2013 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="binary_descendant.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="binary_lower_bound.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/binary_index_of.html
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/binary_index_of.html	2013-07-07 14:52:52 EDT (Sun, 07 Jul 2013)	(r84977)
@@ -0,0 +1,71 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>binary_index_of()</title>
+<link rel="stylesheet" href="http://www.boost.org/doc/libs/release/doc/src/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.77.1">
+<link rel="home" href="../../index.html" title="Chapter 1. tree_node 0.5">
+<link rel="up" href="../reference.html" title="Reference">
+<link rel="prev" href="advance_binary.html" title="advance_binary()">
+<link rel="next" href="binary_descendant.html" title="binary_descendant()">
+</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="advance_binary.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="binary_descendant.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="tree_node.reference.binary_index_of"></a><a class="link" href="binary_index_of.html" title="binary_index_of()"><code class="computeroutput"><span class="identifier">binary_index_of</span><span class="special">()</span></code></a>
+</h3></div></div></div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.binary_index_of.synopsis"></a><a class="link" href="binary_index_of.html#tree_node.reference.binary_index_of.synopsis" title="Synopsis">Synopsis</a>
+</h4></div></div></div>
+<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">Value</span><span class="special">></span>
+    <span class="identifier">Value</span>
+        <span class="identifier">binary_index_of</span><span class="special">(</span>
+            <span class="identifier">NodePointer</span> <span class="identifier">node_ptr</span>
+          <span class="special">,</span> <span class="identifier">Value</span> <span class="identifier">offset</span>
+          <span class="special">,</span> <span class="identifier">NodePointer</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">root_ptr</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">Value</span><span class="special">></span>
+    <span class="identifier">Value</span> <span class="identifier">binary_index_of</span><span class="special">(</span><span class="identifier">NodePointer</span> <span class="identifier">node_ptr</span><span class="special">,</span> <span class="identifier">Value</span> <span class="identifier">offset</span><span class="special">);</span>
+<span class="special">}}</span>  <span class="comment">// namespace boost::tree_node</span>
+</pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.binary_index_of.description"></a><a class="link" href="binary_index_of.html#tree_node.reference.binary_index_of.description" title="Description">Description</a>
+</h4></div></div></div>
+<p>
+          TODO.
+        </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.binary_index_of.definition"></a><a class="link" href="binary_index_of.html#tree_node.reference.binary_index_of.definition" title="Where defined">Where
+        defined</a>
+</h4></div></div></div>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span>boost/tree_node/algorithm/binary_index_of.hpp<span class="special">></span>
+</pre>
+</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-2013 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="advance_binary.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="binary_descendant.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/binary_lower_bound.html
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/binary_lower_bound.html	2013-07-07 14:52:52 EDT (Sun, 07 Jul 2013)	(r84977)
@@ -0,0 +1,68 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>binary_lower_bound()</title>
+<link rel="stylesheet" href="http://www.boost.org/doc/libs/release/doc/src/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.77.1">
+<link rel="home" href="../../index.html" title="Chapter 1. tree_node 0.5">
+<link rel="up" href="../reference.html" title="Reference">
+<link rel="prev" href="binary_descendant_at_index.html" title="binary_descendant_at_index()">
+<link rel="next" href="binary_upper_bound.html" title="binary_upper_bound()">
+</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="binary_descendant_at_index.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="binary_upper_bound.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="tree_node.reference.binary_lower_bound"></a><a class="link" href="binary_lower_bound.html" title="binary_lower_bound()"><code class="computeroutput"><span class="identifier">binary_lower_bound</span><span class="special">()</span></code></a>
+</h3></div></div></div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.binary_lower_bound.synopsis"></a><a class="link" href="binary_lower_bound.html#tree_node.reference.binary_lower_bound.synopsis" title="Synopsis">Synopsis</a>
+</h4></div></div></div>
+<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">Value</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Compare</span><span class="special">></span>
+    <span class="identifier">NodePointer</span>
+        <span class="identifier">binary_lower_bound</span><span class="special">(</span>
+            <span class="identifier">NodePointer</span> <span class="identifier">node_ptr</span>
+          <span class="special">,</span> <span class="identifier">Value</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">value</span>
+          <span class="special">,</span> <span class="identifier">Compare</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">compare</span>
+        <span class="special">);</span>
+<span class="special">}}</span>  <span class="comment">// namespace boost::tree_node</span>
+</pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.binary_lower_bound.description"></a><a class="link" href="binary_lower_bound.html#tree_node.reference.binary_lower_bound.description" title="Description">Description</a>
+</h4></div></div></div>
+<p>
+          TODO.
+        </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.binary_lower_bound.definition"></a><a class="link" href="binary_lower_bound.html#tree_node.reference.binary_lower_bound.definition" title="Where defined">Where
+        defined</a>
+</h4></div></div></div>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span>boost/tree_node/algorithm/binary_lower_bound.hpp<span class="special">></span>
+</pre>
+</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-2013 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="binary_descendant_at_index.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="binary_upper_bound.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/binary_node.html
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/binary_node.html	2013-07-07 14:52:52 EDT (Sun, 07 Jul 2013)	(r84977)
@@ -0,0 +1,1145 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>binary_node<T,Size,AllocatorSelector></title>
+<link rel="stylesheet" href="http://www.boost.org/doc/libs/release/doc/src/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.77.1">
+<link rel="home" href="../../index.html" title="Chapter 1. tree_node 0.5">
+<link rel="up" href="../reference.html" title="Reference">
+<link rel="prev" href="avl_balancer.html" title="adelson_velskii_landis_balancer">
+<link rel="next" href="binary_node_gen.html" title="binary_node_gen<Size,AllocatorSelector>">
+</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="avl_balancer.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="binary_node_gen.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="tree_node.reference.binary_node"></a><a class="link" href="binary_node.html" title="binary_node<T,Size,AllocatorSelector>"><code class="computeroutput"><span class="identifier">binary_node</span><span class="special"><</span><span class="identifier">T</span><span class="special">,</span><span class="identifier">Size</span><span class="special">,</span><span class="identifier">AllocatorSelector</span><span class="special">></span></code></a>
+</h3></div></div></div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.binary_node.description"></a><a class="link" href="binary_node.html#tree_node.reference.binary_node.description" title="Description">Description</a>
+</h4></div></div></div>
+<p>
+          This class template is suitable for classes or algorithms that require
+          a binary tree node data structure. Objects of this type can be stored by
+          value.
+        </p>
+<p>
+          If the user data type models the Fusion Associative Sequence concept, then
+          each of the elements within can be also be obtained through key-value access
+          and set through key-value modification as defined by the <a class="link" href="../concepts/tree_node.html" title="Tree Node"><span class="bold"><strong>Tree Node</strong></span></a> concept; more specifically, for
+          some object <code class="computeroutput"><span class="identifier">node</span></code> of type
+          <code class="computeroutput"><span class="identifier">Node</span></code> such that <code class="computeroutput"><span class="identifier">Node</span></code> is a template instantiation of
+          <code class="computeroutput"><span class="identifier">binary_node</span></code>, then for any
+          type <code class="computeroutput"><span class="identifier">Key</span></code> such that <code class="literal">boost::fusion::has_key<Key>(get<<a class="link" href="data_key.html" title="data_key">tree_node::data_key</a>>(node))</code>
+          returns <code class="computeroutput"><span class="keyword">true</span></code>, so does <code class="literal"><a class="link" href="has_key.html" title="has_key()">tree_node::has_key</a><Key>(node)</code>.
+        </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.binary_node.definition"></a><a class="link" href="binary_node.html#tree_node.reference.binary_node.definition" title="Where defined">Where defined</a>
+</h4></div></div></div>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span>boost/tree_node/binary_node.hpp<span class="special">></span>
+</pre>
+<p>
+          Forward-declared:
+        </p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span>boost/tree_node/binary_node_fwd.hpp<span class="special">></span>
+</pre>
+<p>
+          To register under Boost.Typeof:
+        </p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span>boost/typeof/boost/tree_node/binary_node.hpp<span class="special">></span>
+</pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.binary_node.tpl_param"></a><a class="link" href="binary_node.html#tree_node.reference.binary_node.tpl_param" title="Template Parameters">Template
+        Parameters</a>
+</h4></div></div></div>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+                  <p>
+                    Parameter
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Description
+                  </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 user data to be stored in a <code class="computeroutput"><span class="identifier">binary_node</span></code>.
+                  </p>
+                </td>
+<td>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">Size</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    The size type.
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">uint32_t</span></code>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">AllocatorSelector</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    A Unary Metafunction Class that
+                    takes in <code class="computeroutput"><span class="identifier">binary_node</span></code>
+                    and returns either an allocator model or a mutable reference
+                    to one.
+                  </p>
+                </td>
+<td>
+                  <p>
+                    boost::std_allocator_selector
+                  </p>
+                </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.binary_node.model_of"></a><a class="link" href="binary_node.html#tree_node.reference.binary_node.model_of" title="Model of">Model of</a>
+</h4></div></div></div>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem"><p>
+              <a class="link" href="../concepts/binary_tree_node.html" title="Binary Tree Node"><span class="bold"><strong>Binary
+              Tree Node</strong></span></a>
+            </p></li>
+<li class="listitem"><p>
+              Default Constructible if <code class="computeroutput"><span class="identifier">T</span></code> is Default Constructible
+            </p></li>
+<li class="listitem"><p>
+              <a class="link" href="../concepts/copyable_tree_node.html" title="Copyable Tree Node"><span class="bold"><strong>Copyable
+              Tree Node</strong></span></a> if <code class="computeroutput"><span class="identifier">T</span></code>
+              is Copy Constructible
+            </p></li>
+<li class="listitem"><p>
+              Assignable
+              if <code class="computeroutput"><span class="identifier">T</span></code> is Copy Constructible and Movable
+            </p></li>
+<li class="listitem"><p>
+              <a class="link" href="../concepts/movable_tree_node.html" title="Movable Tree Node"><span class="bold"><strong>Movable
+              Tree Node</strong></span></a> if <code class="computeroutput"><span class="identifier">T</span></code>
+              is Movable
+            </p></li>
+</ul></div>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.binary_node.public_bases"></a><a class="link" href="binary_node.html#tree_node.reference.binary_node.public_bases" title="Public Base Classes">Public
+        Base Classes</a>
+</h4></div></div></div>
+<pre class="programlisting"><span class="identifier">binary_node_base</span><span class="special"><</span>
+    <span class="identifier">binary_node</span><span class="special"><</span><span class="identifier">T</span><span class="special">,</span><span class="identifier">Size</span><span class="special">,</span><span class="identifier">AllocatorSelector</span><span class="special">></span>
+  <span class="special">,</span> <span class="identifier">T</span>
+  <span class="special">,</span> <span class="identifier">Size</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">mpl</span><span class="special">::</span><span class="identifier">apply_wrap1</span><span class="special"><</span>
+        <span class="identifier">AllocatorSelector</span>
+      <span class="special">,</span> <span class="identifier">binary_node</span><span class="special"><</span><span class="identifier">T</span><span class="special">,</span><span class="identifier">Size</span><span class="special">,</span><span class="identifier">AllocatorSelector</span><span class="special">></span>
+    <span class="special">>::</span><span class="identifier">type</span>
+<span class="special">></span>
+</pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.binary_node.members"></a><a class="link" href="binary_node.html#tree_node.reference.binary_node.members" title="Public Members">Public 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>
+                    Definition
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Where defined
+                  </p>
+                </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+                  <p>
+                    Super type
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">typedef</span> <span class="identifier">binary_node_base</span><span class="special"><</span>
+            <span class="identifier">binary_node</span>
+          <span class="special">,</span> <span class="identifier">T</span>
+          <span class="special">,</span> <span class="identifier">Size</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">mpl</span><span class="special">::</span><span class="identifier">apply_wrap1</span><span class="special"><</span>
+                <span class="identifier">AllocatorSelector</span>
+              <span class="special">,</span> <span class="identifier">binary_node</span>
+            <span class="special">>::</span><span class="identifier">type</span>
+        <span class="special">></span>
+        <span class="identifier">super_t</span><span class="special">;</span>
+</pre>
+                </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, allocator type, allocator reference type
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">typedef</span> <span class="keyword">typename</span> <span class="identifier">super_t</span><span class="special">::</span><span class="identifier">traits</span>
+        <span class="identifier">traits</span><span class="special">;</span>
+</pre>
+                </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>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">typedef</span> <span class="keyword">typename</span> <span class="identifier">super_t</span><span class="special">::</span><span class="identifier">pointer</span>
+        <span class="identifier">pointer</span><span class="special">;</span>
+</pre>
+                </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>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">typedef</span> <span class="keyword">typename</span> <span class="identifier">super_t</span><span class="special">::</span><span class="identifier">const_pointer</span>
+        <span class="identifier">const_pointer</span><span class="special">;</span>
+</pre>
+                </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>
+                    Iterator type
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">typedef</span> <span class="identifier">implementation_defined</span> <span class="identifier">iterator</span><span class="special">;</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <a class="link" href="../concepts/non_assoc_tree_node.html" title="Non-Associative Tree Node"><span class="bold"><strong>Non-Associative Tree Node</strong></span></a>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Immutable iterator type
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">typedef</span> <span class="identifier">implementation_defined</span> <span class="identifier">const_iterator</span><span class="special">;</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <a class="link" href="../concepts/non_assoc_tree_node.html" title="Non-Associative Tree Node"><span class="bold"><strong>Non-Associative Tree Node</strong></span></a>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Reverse iterator type
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">typedef</span> <span class="identifier">implementation_defined</span> <span class="identifier">reverse_iterator</span><span class="special">;</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <a class="link" href="../concepts/reversible_tree_node.html" title="Reversible Tree Node"><span class="bold"><strong>Reversible Tree Node</strong></span></a>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Immutable reverse iterator type
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">typedef</span> <span class="identifier">implementation_defined</span> <span class="identifier">const_reverse_iterator</span><span class="special">;</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <a class="link" href="../concepts/reversible_tree_node.html" title="Reversible Tree Node"><span class="bold"><strong>Reversible Tree Node</strong></span></a>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Size type
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">typedef</span> <span class="keyword">typename</span> <span class="identifier">super_t</span><span class="special">::</span><span class="identifier">size_type</span>
+        <span class="identifier">size_type</span><span class="special">;</span>
+</pre>
+                </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>
+                    Emplacement constructor
+                  </p>
+                </td>
+<td>
+<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="special">...</span><span class="identifier">Args</span><span class="special">></span>
+<span class="keyword">explicit</span> <span class="identifier">binary_node</span><span class="special">(</span><span class="identifier">Args</span><span class="special">&&</span> <span class="special">...</span><span class="identifier">args</span><span class="special">);</span>
+</pre>
+                </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>
+                    Emplacement constructor with allocator
+                  </p>
+                </td>
+<td>
+<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="special">...</span><span class="identifier">Args</span><span class="special">></span>
+<span class="keyword">explicit</span> <span class="identifier">binary_node</span><span class="special">(</span>
+    <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">container</span><span class="special">::</span><span class="identifier">allocator_arg_t</span>
+  <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">traits</span><span class="special">::</span><span class="identifier">allocator_reference</span> <span class="identifier">allocator</span>
+  <span class="special">,</span> <span class="identifier">Args</span><span class="special">&&</span> <span class="special">...</span><span class="identifier">args</span>
+<span class="special">);</span>
+</pre>
+                </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>
+                    Copy constructor
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">binary_node</span><span class="special">(</span><span class="identifier">binary_node</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">copy</span><span class="special">);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <a class="link" href="../concepts/copyable_tree_node.html" title="Copyable Tree Node"><span class="bold"><strong>Copyable Tree Node</strong></span></a>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Copy constructor with allocator
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">binary_node</span><span class="special">(</span>
+    <span class="identifier">binary_node</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">copy</span>
+  <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">traits</span><span class="special">::</span><span class="identifier">allocator_reference</span> <span class="identifier">allocator</span>
+<span class="special">);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <a class="link" href="../concepts/copyable_tree_node.html" title="Copyable Tree Node"><span class="bold"><strong>Copyable Tree Node</strong></span></a>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Move constructor
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">binary_node</span><span class="special">(</span><span class="identifier">binary_node</span><span class="special">&&</span> <span class="identifier">source</span><span class="special">);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <a class="link" href="../concepts/movable_tree_node.html" title="Movable Tree Node"><span class="bold"><strong>Movable Tree Node</strong></span></a>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Move constructor with allocator
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">binary_node</span><span class="special">(</span>
+    <span class="identifier">binary_node</span><span class="special">&&</span> <span class="identifier">source</span>
+  <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">traits</span><span class="special">::</span><span class="identifier">allocator_reference</span> <span class="identifier">allocator</span>
+<span class="special">);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <a class="link" href="../concepts/movable_tree_node.html" title="Movable Tree Node"><span class="bold"><strong>Movable Tree Node</strong></span></a>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Copy assignment operator
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">binary_node</span><span class="special">&</span> <span class="keyword">operator</span><span class="special">=(</span><span class="identifier">binary_node</span> <span class="keyword">const</span><span class="special">&);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Assignable
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Move assignment operator
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">binary_node</span><span class="special">&</span> <span class="keyword">operator</span><span class="special">=(</span><span class="identifier">binary_node</span><span class="special">&&);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Movable
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Parent read-only access
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">const_pointer</span> <span class="identifier">get_parent_ptr</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+</pre>
+                </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>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">pointer</span> <span class="identifier">get_parent_ptr</span><span class="special">();</span>
+</pre>
+                </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-of-left creation
+                  </p>
+                </td>
+<td>
+<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="special">...</span><span class="identifier">Args</span><span class="special">></span>
+<span class="identifier">pointer</span> <span class="identifier">emplace_parent_of_left</span><span class="special">(</span><span class="identifier">Args</span><span class="special">&&</span> <span class="special">...</span><span class="identifier">args</span><span class="special">);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <a class="link" href="../concepts/binary_tree_node.html" title="Binary Tree Node"><span class="bold"><strong>Binary Tree Node</strong></span></a>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Parent-of-right creation
+                  </p>
+                </td>
+<td>
+<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="special">...</span><span class="identifier">Args</span><span class="special">></span>
+<span class="identifier">pointer</span> <span class="identifier">emplace_parent_of_right</span><span class="special">(</span><span class="identifier">Args</span><span class="special">&&</span> <span class="special">...</span><span class="identifier">args</span><span class="special">);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <a class="link" href="../concepts/binary_tree_node.html" title="Binary Tree Node"><span class="bold"><strong>Binary Tree Node</strong></span></a>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Left child creation
+                  </p>
+                </td>
+<td>
+<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="special">...</span><span class="identifier">Args</span><span class="special">></span>
+<span class="identifier">iterator</span> <span class="identifier">emplace_left</span><span class="special">(</span><span class="identifier">Args</span><span class="special">&&</span> <span class="special">...</span><span class="identifier">args</span><span class="special">);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <a class="link" href="../concepts/binary_tree_node.html" title="Binary Tree Node"><span class="bold"><strong>Binary Tree Node</strong></span></a>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Left child copy creation
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">iterator</span> <span class="identifier">insert_left</span><span class="special">(</span><span class="identifier">binary_node</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">child</span><span class="special">);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <a class="link" href="../concepts/binary_tree_node.html" title="Binary Tree Node"><span class="bold"><strong>Binary Tree Node</strong></span></a>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Right child creation
+                  </p>
+                </td>
+<td>
+<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="special">...</span><span class="identifier">Args</span><span class="special">></span>
+<span class="identifier">iterator</span> <span class="identifier">emplace_right</span><span class="special">(</span><span class="identifier">Args</span><span class="special">&&</span> <span class="special">...</span><span class="identifier">args</span><span class="special">);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <a class="link" href="../concepts/binary_tree_node.html" title="Binary Tree Node"><span class="bold"><strong>Binary Tree Node</strong></span></a>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Right child copy creation
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">iterator</span> <span class="identifier">insert_right</span><span class="special">(</span><span class="identifier">binary_node</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">child</span><span class="special">);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <a class="link" href="../concepts/binary_tree_node.html" title="Binary Tree Node"><span class="bold"><strong>Binary Tree Node</strong></span></a>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Left child read-only access
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">const_pointer</span> <span class="identifier">get_left_child_ptr</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <a class="link" href="../concepts/binary_tree_node.html" title="Binary Tree Node"><span class="bold"><strong>Binary Tree Node</strong></span></a>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Left child access
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">pointer</span> <span class="identifier">get_left_child_ptr</span><span class="special">();</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <a class="link" href="../concepts/binary_tree_node.html" title="Binary Tree Node"><span class="bold"><strong>Binary Tree Node</strong></span></a>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Right child read-only access
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">const_pointer</span> <span class="identifier">get_right_child_ptr</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <a class="link" href="../concepts/binary_tree_node.html" title="Binary Tree Node"><span class="bold"><strong>Binary Tree Node</strong></span></a>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Right child access
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">pointer</span> <span class="identifier">get_right_child_ptr</span><span class="special">();</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <a class="link" href="../concepts/binary_tree_node.html" title="Binary Tree Node"><span class="bold"><strong>Binary Tree Node</strong></span></a>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Children range begin read-only access
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">const_iterator</span> <span class="identifier">cbegin</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+<span class="identifier">const_iterator</span> <span class="identifier">begin</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+</pre>
+                </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>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">iterator</span> <span class="identifier">begin</span><span class="special">();</span>
+</pre>
+                </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 read-only access
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">const_iterator</span> <span class="identifier">cend</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+<span class="identifier">const_iterator</span> <span class="identifier">end</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+</pre>
+                </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>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">iterator</span> <span class="identifier">end</span><span class="special">();</span>
+</pre>
+                </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 reverse range begin read-only access
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">const_reverse_iterator</span> <span class="identifier">crbegin</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+<span class="identifier">const_reverse_iterator</span> <span class="identifier">rbegin</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <a class="link" href="../concepts/reversible_tree_node.html" title="Reversible Tree Node"><span class="bold"><strong>Reversible Tree Node</strong></span></a>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Children reverse range begin access
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">reverse_iterator</span> <span class="identifier">rbegin</span><span class="special">();</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <a class="link" href="../concepts/reversible_tree_node.html" title="Reversible Tree Node"><span class="bold"><strong>Reversible Tree Node</strong></span></a>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Children reverse range past-the-end read-only access
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">const_reverse_iterator</span> <span class="identifier">crend</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+<span class="identifier">const_reverse_iterator</span> <span class="identifier">rend</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <a class="link" href="../concepts/reversible_tree_node.html" title="Reversible Tree Node"><span class="bold"><strong>Reversible Tree Node</strong></span></a>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Children reverse range past-the-end access
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">reverse_iterator</span> <span class="identifier">rend</span><span class="special">();</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <a class="link" href="../concepts/reversible_tree_node.html" title="Reversible Tree Node"><span class="bold"><strong>Reversible Tree Node</strong></span></a>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Children range size query
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">size_type</span> <span class="identifier">size</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+</pre>
+                </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>
+                    Rotate left
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">pointer</span> <span class="identifier">rotate_left</span><span class="special">();</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <a class="link" href="../concepts/binary_tree_node.html" title="Binary Tree Node"><span class="bold"><strong>Binary Tree Node</strong></span></a>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Rotate right
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">pointer</span> <span class="identifier">rotate_right</span><span class="special">();</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <a class="link" href="../concepts/binary_tree_node.html" title="Binary Tree Node"><span class="bold"><strong>Binary Tree Node</strong></span></a>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Remove left child
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">bool</span> <span class="identifier">erase_left</span><span class="special">();</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <a class="link" href="../concepts/binary_tree_node.html" title="Binary Tree Node"><span class="bold"><strong>Binary Tree Node</strong></span></a>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Remove right child
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">bool</span> <span class="identifier">erase_right</span><span class="special">();</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <a class="link" href="../concepts/binary_tree_node.html" title="Binary Tree Node"><span class="bold"><strong>Binary Tree Node</strong></span></a>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Leaf node query
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">bool</span> <span class="identifier">empty</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+</pre>
+                </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>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">void</span> <span class="identifier">clear</span><span class="special">();</span>
+</pre>
+                </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.binary_node.non_members"></a><a class="link" href="binary_node.html#tree_node.reference.binary_node.non_members" title="Non-Members">Non-Members</a>
+</h4></div></div></div>
+<p>
+          Same as those defined in <a class="link" href="binary_node_base.html" title="binary_node_base<Derived,T,Selector>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">binary_node_base</span></code></a>.
+        </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.binary_node.example"></a><a class="link" href="binary_node.html#tree_node.reference.binary_node.example" title="Example">Example</a>
+</h4></div></div></div>
+<p>
+          A Cartesian tree
+          is a binary tree derived from an input range such that each node corresponds
+          to a value in the range and that the value associated with each non-root
+          node is greater than that associated with its parent. The construction
+          procedure changes the root node as necessary to maintain the heap order
+          invariant, so to keep things simple, the first node must be created the
+          same way the succeeding placement insertion methods do: by using the node
+          allocator type and boost::container::allocator_traits.
+        </p>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">Iterator</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Compare</span><span class="special">></span>
+<span class="keyword">void</span>
+    <span class="identifier">cartesian_sort</span><span class="special">(</span>
+        <span class="identifier">Iterator</span> <span class="identifier">itr_begin</span>
+      <span class="special">,</span> <span class="identifier">Iterator</span> <span class="identifier">itr_end</span>
+      <span class="special">,</span> <span class="identifier">Compare</span> <span class="identifier">compare</span>
+    <span class="special">)</span>
+<span class="special">{</span>
+    <span class="keyword">if</span> <span class="special">(</span><span class="identifier">itr_begin</span> <span class="special">==</span> <span class="identifier">itr_end</span><span class="special">)</span> <span class="keyword">return</span><span class="special">;</span>
+
+    <span class="keyword">typedef</span> <span class="keyword">typename</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">iterator_value</span><span class="special"><</span><span class="identifier">Iterator</span><span class="special">>::</span><span class="identifier">type</span> <span class="identifier">Value</span><span class="special">;</span>
+    <span class="keyword">typedef</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">binary_node</span><span class="special"><</span><span class="identifier">Value</span><span class="special">></span> <span class="identifier">Node</span><span class="special">;</span>
+    <span class="keyword">typedef</span> <span class="keyword">typename</span> <span class="identifier">Node</span><span class="special">::</span><span class="identifier">traits</span><span class="special">::</span><span class="identifier">allocator</span> <span class="identifier">Alloc</span><span class="special">;</span>
+
+    <span class="identifier">Alloc</span> <span class="identifier">allocator</span><span class="special">;</span>
+    <span class="keyword">typename</span> <span class="identifier">Node</span><span class="special">::</span><span class="identifier">pointer</span> <span class="identifier">root_ptr</span> <span class="special">=</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">container</span><span class="special">::</span><span class="identifier">allocator_traits</span><span class="special"><</span>
+        <span class="identifier">Alloc</span>
+    <span class="special">>::</span><span class="identifier">allocate</span><span class="special">(</span><span class="identifier">allocator</span><span class="special">,</span> <span class="number">1</span><span class="special">);</span>
+
+    <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">container</span><span class="special">::</span><span class="identifier">allocator_traits</span><span class="special"><</span>
+        <span class="identifier">Alloc</span>
+    <span class="special">>::</span><span class="identifier">construct</span><span class="special">(</span><span class="identifier">allocator</span><span class="special">,</span> <span class="identifier">root_ptr</span><span class="special">,</span> <span class="special">*</span><span class="identifier">itr_begin</span><span class="special">);</span>
+
+    <span class="keyword">typename</span> <span class="identifier">Node</span><span class="special">::</span><span class="identifier">pointer</span> <span class="identifier">right_ptr</span> <span class="special">=</span> <span class="identifier">root_ptr</span><span class="special">;</span>
+    <span class="keyword">typename</span> <span class="identifier">Node</span><span class="special">::</span><span class="identifier">pointer</span> <span class="identifier">ancestor_ptr</span><span class="special">;</span>
+
+    <span class="keyword">for</span> <span class="special">(</span><span class="identifier">Iterator</span> <span class="identifier">itr</span> <span class="special">=</span> <span class="identifier">itr_begin</span><span class="special">;</span> <span class="special">++</span><span class="identifier">itr</span> <span class="special">!=</span> <span class="identifier">itr_end</span><span class="special">;)</span>
+    <span class="special">{</span>
+        <span class="keyword">if</span> <span class="special">(</span><span class="identifier">compare</span><span class="special">(*</span><span class="identifier">itr</span><span class="special">,</span> <span class="identifier">get</span><span class="special">(*</span><span class="identifier">root_ptr</span><span class="special">,</span> <span class="identifier">data_key</span><span class="special">())))</span>
+        <span class="special">{</span>
+            <span class="identifier">right_ptr</span> <span class="special">=</span> <span class="identifier">root_ptr</span> <span class="special">=</span> <span class="identifier">root_ptr</span><span class="special">-></span><span class="identifier">emplace_parent_of_left</span><span class="special">(*</span><span class="identifier">itr</span><span class="special">);</span>
+        <span class="special">}</span>
+        <span class="keyword">else</span> <span class="keyword">if</span> <span class="special">(!</span><span class="identifier">compare</span><span class="special">(*</span><span class="identifier">itr</span><span class="special">,</span> <span class="identifier">get</span><span class="special">(*</span><span class="identifier">right_ptr</span><span class="special">,</span> <span class="identifier">data_key</span><span class="special">())))</span>
+        <span class="special">{</span>
+            <span class="identifier">right_ptr</span> <span class="special">=</span> <span class="special">&*</span><span class="identifier">right_ptr</span><span class="special">-></span><span class="identifier">emplace_right</span><span class="special">(*</span><span class="identifier">itr</span><span class="special">);</span>
+        <span class="special">}</span>
+        <span class="keyword">else</span>
+        <span class="special">{</span>
+            <span class="keyword">for</span> <span class="special">(</span>
+                <span class="identifier">ancestor_ptr</span> <span class="special">=</span> <span class="identifier">right_ptr</span><span class="special">;</span>
+                <span class="identifier">ancestor_ptr</span><span class="special">-></span><span class="identifier">get_parent_ptr</span><span class="special">()</span> <span class="special">&&</span> <span class="identifier">compare</span><span class="special">(</span>
+                    <span class="special">*</span><span class="identifier">itr</span>
+                  <span class="special">,</span> <span class="identifier">get</span><span class="special">(*</span><span class="identifier">ancestor_ptr</span><span class="special">-></span><span class="identifier">get_parent_ptr</span><span class="special">(),</span> <span class="identifier">data_key</span><span class="special">())</span>
+                <span class="special">);</span>
+                <span class="identifier">ancestor_ptr</span> <span class="special">=</span> <span class="identifier">ancestor_ptr</span><span class="special">-></span><span class="identifier">get_parent_ptr</span><span class="special">()</span>
+            <span class="special">)</span>
+            <span class="special">{</span>
+            <span class="special">}</span>
+
+            <span class="identifier">BOOST_ASSERT</span><span class="special">(!!</span><span class="identifier">ancestor_ptr</span><span class="special">-></span><span class="identifier">get_parent_ptr</span><span class="special">());</span>
+            <span class="identifier">right_ptr</span> <span class="special">=</span> <span class="identifier">ancestor_ptr</span><span class="special">-></span><span class="identifier">emplace_parent_of_left</span><span class="special">(*</span><span class="identifier">itr</span><span class="special">);</span>
+        <span class="special">}</span>
+    <span class="special">}</span>
+</pre>
+<p>
+          A symmetric (in-order) traversal of the tree results in the original range:
+          use the boost::make_transform_iterator()
+          function with the <a class="link" href="at_key.html" title="at_key<Key>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">at_key</span></code></a> functor to transform the
+          <a class="link" href="in_order_iterator.html" title="in_order_iterator<Node,IsReverse>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">in_order_iterator</span></code></a>
+          so that the std::equal()
+          algorithm can compare the Cartesian tree with the input range. Since the
+          <code class="computeroutput"><span class="identifier">Compare</span></code> type models the
+          Strict Weak Ordering concept, boost::make_equivalence_function()
+          can use the <code class="computeroutput"><span class="identifier">compare</span></code> functor
+          to create a suitable comparator that std::equal()
+          can use in turn.
+        </p>
+<pre class="programlisting"><span class="identifier">BOOST_ASSERT</span><span class="special">(</span>
+    <span class="special">::</span><span class="identifier">std</span><span class="special">::</span><span class="identifier">equal</span><span class="special">(</span>
+        <span class="identifier">itr_begin</span>
+      <span class="special">,</span> <span class="identifier">itr_end</span>
+      <span class="special">,</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">make_transform_iterator</span><span class="special">(</span>
+            <span class="identifier">make_in_order_iterator</span><span class="special">(*</span><span class="identifier">root_ptr</span><span class="special">)</span>
+          <span class="special">,</span> <span class="identifier">at_key</span><span class="special"><</span><span class="identifier">data_key</span><span class="special">>()</span>
+        <span class="special">)</span>
+      <span class="special">,</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">make_equivalence_function</span><span class="special">(</span><span class="identifier">compare</span><span class="special">)</span>
+    <span class="special">)</span>
+<span class="special">);</span>
+</pre>
+<p>
+          The boost::std_heap_selector type induces
+          the breadth-first iterator to replace the usual FIFO queue with a priority
+          queue, resulting in a sorted range. The <a class="link" href="compare_selector.html" title="compare_selector<Key>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">compareS</span></code></a> type enables the priority
+          queue to store pointers or iterators to tree nodes while prioritizing according
+          to their data.
+        </p>
+<pre class="programlisting"><span class="special">*</span><span class="identifier">itr_begin</span> <span class="special">=</span> <span class="identifier">get</span><span class="special">(*</span><span class="identifier">root_ptr</span><span class="special">,</span> <span class="identifier">data_key</span><span class="special">());</span>
+<span class="special">++</span><span class="identifier">itr_begin</span><span class="special">;</span>
+
+<span class="keyword">for</span> <span class="special">(</span>
+    <span class="identifier">breadth_first_descendant_iterator</span><span class="special"><</span>
+        <span class="identifier">Node</span> <span class="keyword">const</span>
+      <span class="special">,</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">std_heap_selector</span><span class="special"><</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">compareS</span><span class="special">></span>
+    <span class="special">></span> <span class="identifier">itr</span><span class="special">(</span>
+        <span class="special">*</span><span class="identifier">root_ptr</span>
+      <span class="special">,</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">bind</span><span class="special">(</span><span class="identifier">compare</span><span class="special">,</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">arg</span><span class="special"><</span><span class="number">2</span><span class="special">>(),</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">arg</span><span class="special"><</span><span class="number">1</span><span class="special">>())</span>
+    <span class="special">);</span>
+    <span class="identifier">itr</span><span class="special">;</span>
+    <span class="special">++</span><span class="identifier">itr</span>
+<span class="special">)</span>
+<span class="special">{</span>
+    <span class="identifier">BOOST_ASSERT</span><span class="special">(</span><span class="identifier">itr_begin</span> <span class="special">!=</span> <span class="identifier">itr_end</span><span class="special">);</span>
+    <span class="special">*</span><span class="identifier">itr_begin</span> <span class="special">=</span> <span class="identifier">get</span><span class="special">(*</span><span class="identifier">itr</span><span class="special">,</span> <span class="identifier">data_key</span><span class="special">());</span>
+    <span class="special">++</span><span class="identifier">itr_begin</span><span class="special">;</span>
+<span class="special">}</span>
+</pre>
+<p>
+          Using the node allocator type and boost::container::allocator_traits to destroy the
+          root node and reclaim its memory will recursively destroy the descendant
+          nodes and reclaim their memory as well.
+        </p>
+<pre class="programlisting">    <span class="identifier">BOOST_ASSERT</span><span class="special">(</span><span class="identifier">itr_begin</span> <span class="special">==</span> <span class="identifier">itr_end</span><span class="special">);</span>
+    <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">container</span><span class="special">::</span><span class="identifier">allocator_traits</span><span class="special"><</span>
+        <span class="identifier">Alloc</span>
+    <span class="special">>::</span><span class="identifier">destroy</span><span class="special">(</span><span class="identifier">allocator</span><span class="special">,</span> <span class="identifier">root_ptr</span><span class="special">);</span>
+    <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">container</span><span class="special">::</span><span class="identifier">allocator_traits</span><span class="special"><</span>
+        <span class="identifier">Alloc</span>
+    <span class="special">>::</span><span class="identifier">deallocate</span><span class="special">(</span><span class="identifier">allocator</span><span class="special">,</span> <span class="identifier">root_ptr</span><span class="special">,</span> <span class="number">1</span><span class="special">);</span>
+<span class="special">}</span>
+</pre>
+<p>
+          Our sorting function has the advantage of not requiring the iterator type
+          of the input range to model the Random Access Iterator concept or even the
+          Bidirectional Iterator concept, allowing
+          it to work for a larger variety of range types.
+        </p>
+<p>
+          The complete program source can be found here: <boost/tree_node/algorithm/cartesian_sort.hpp>
+          and <test/cartesian_sort.cpp>
+        </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.binary_node.test"></a><a class="link" href="binary_node.html#tree_node.reference.binary_node.test" title="Test">Test</a>
+</h4></div></div></div>
+<p>
+          <test/binary_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-2013 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="avl_balancer.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="binary_node_gen.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/binary_node_base.html
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/binary_node_base.html	2013-07-07 14:52:52 EDT (Sun, 07 Jul 2013)	(r84977)
@@ -0,0 +1,1715 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>binary_node_base<Derived,T,Selector></title>
+<link rel="stylesheet" href="http://www.boost.org/doc/libs/release/doc/src/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.77.1">
+<link rel="home" href="../../index.html" title="Chapter 1. tree_node 0.5">
+<link rel="up" href="../reference.html" title="Reference">
+<link rel="prev" href="binary_node_gen.html" title="binary_node_gen<Size,AllocatorSelector>">
+<link rel="next" href="binary_node_base_gen.html" title="binary_node_base_gen<Size,AllocatorSelector>">
+</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="binary_node_gen.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="binary_node_base_gen.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="tree_node.reference.binary_node_base"></a><a class="link" href="binary_node_base.html" title="binary_node_base<Derived,T,Selector>"><code class="computeroutput"><span class="identifier">binary_node_base</span><span class="special"><</span><span class="identifier">Derived</span><span class="special">,</span><span class="identifier">T</span><span class="special">,</span><span class="identifier">Selector</span><span class="special">></span></code></a>
+</h3></div></div></div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.binary_node_base.description"></a><a class="link" href="binary_node_base.html#tree_node.reference.binary_node_base.description" title="Description">Description</a>
+</h4></div></div></div>
+<p>
+          The <a class="link" href="binary_node.html" title="binary_node<T,Size,AllocatorSelector>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">binary_node</span></code></a>
+          class template inherits its functionality from this class template. They
+          differ only with regard to template parameters: the <a class="link" href="binary_node.html" title="binary_node<T,Size,AllocatorSelector>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">binary_node</span></code></a> class template is
+          meant to be used directly as a data structure, while <code class="computeroutput"><span class="identifier">binary_node_base</span></code>
+          is more suitable as a base class template from which <a class="link" href="../concepts/tree_node.html" title="Tree Node"><span class="bold"><strong>Tree Node</strong></span></a> adaptor class templates can derive
+          via the <a class="link" href="binary_node_base_gen.html" title="binary_node_base_gen<Size,AllocatorSelector>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">binary_node_base_gen</span></code></a> <a class="link" href="../concepts/base_type_generator.html" title="Base Type Generator"><span class="bold"><strong>Base Type Generator</strong></span></a>.
+        </p>
+<p>
+          If the user data type models the Fusion Associative Sequence concept, then
+          each of the elements within can be also be obtained through key-value access
+          and set through key-value modification as defined by the <a class="link" href="../concepts/tree_node.html" title="Tree Node"><span class="bold"><strong>Tree Node</strong></span></a> concept; more specifically, for
+          some object <code class="computeroutput"><span class="identifier">node</span></code> of type
+          <code class="computeroutput"><span class="identifier">Node</span></code> such that <code class="computeroutput"><span class="identifier">Node</span></code> inherits from <code class="computeroutput"><span class="identifier">binary_node_base</span></code>,
+          then for any type <code class="computeroutput"><span class="identifier">Key</span></code> such
+          that <code class="literal">boost::fusion::has_key<Key>(get<<a class="link" href="data_key.html" title="data_key">tree_node::data_key</a>>(node))</code>
+          returns <code class="computeroutput"><span class="keyword">true</span></code>, so does <code class="literal"><a class="link" href="has_key.html" title="has_key()">tree_node::has_key</a><Key>(node)</code>.
+        </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.binary_node_base.definition"></a><a class="link" href="binary_node_base.html#tree_node.reference.binary_node_base.definition" title="Where defined">Where
+        defined</a>
+</h4></div></div></div>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span>boost/tree_node/binary_node.hpp<span class="special">></span>
+</pre>
+<p>
+          Forward-declared:
+        </p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span>boost/tree_node/binary_node_fwd.hpp<span class="special">></span>
+</pre>
+<p>
+          To register under Boost.Typeof:
+        </p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span>boost/typeof/boost/tree_node/binary_node.hpp<span class="special">></span>
+</pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.binary_node_base.tpl_param"></a><a class="link" href="binary_node_base.html#tree_node.reference.binary_node_base.tpl_param" title="Template Parameters">Template
+        Parameters</a>
+</h4></div></div></div>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+                  <p>
+                    Parameter
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Description
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Requirements
+                  </p>
+                </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">Derived</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    The most descendant type that will inherit from this one.
+                  </p>
+                </td>
+<td>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">T</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    The user data type.
+                  </p>
+                </td>
+<td>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">Size</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    The size type.
+                  </p>
+                </td>
+<td>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">Selector</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    A Unary Metafunction Class that
+                    takes in <code class="computeroutput"><span class="identifier">binary_node</span></code>
+                    and returns either an allocator model or a mutable reference
+                    to one.
+                  </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.binary_node_base.model_of"></a><a class="link" href="binary_node_base.html#tree_node.reference.binary_node_base.model_of" title="Model of">Model
+        of</a>
+</h4></div></div></div>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem"><p>
+              <a class="link" href="../concepts/binary_tree_node.html" title="Binary Tree Node"><span class="bold"><strong>Binary
+              Tree Node</strong></span></a>
+            </p></li>
+<li class="listitem"><p>
+              <a class="link" href="../concepts/base_tree_node.html" title="Base Tree Node"><span class="bold"><strong>Base
+              Tree Node</strong></span></a>
+            </p></li>
+<li class="listitem"><p>
+              Default Constructible if <code class="computeroutput"><span class="identifier">T</span></code> is Default Constructible
+            </p></li>
+</ul></div>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.binary_node_base.public_bases"></a><a class="link" href="binary_node_base.html#tree_node.reference.binary_node_base.public_bases" title="Public Base Classes">Public
+        Base Classes</a>
+</h4></div></div></div>
+<pre class="programlisting"><span class="identifier">tree_node_base</span><span class="special"><</span><span class="identifier">Derived</span><span class="special">></span>
+</pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.binary_node_base.members"></a><a class="link" href="binary_node_base.html#tree_node.reference.binary_node_base.members" title="Members">Members</a>
+</h4></div></div></div>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+                  <p>
+                    Name
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Definition
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Scope
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Where defined
+                  </p>
+                </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+                  <p>
+                    Super type
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">typedef</span> <span class="identifier">tree_node_base</span><span class="special"><</span><span class="identifier">Derived</span><span class="special">></span> <span class="identifier">super_t</span><span class="special">;</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">public</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, allocator type, allocator reference type
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">struct</span> <span class="identifier">traits</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="keyword">typename</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">remove_reference</span><span class="special"><</span><span class="identifier">Allocator</span><span class="special">>::</span><span class="identifier">type</span>
+            <span class="identifier">allocator</span><span class="special">;</span>
+    <span class="keyword">typedef</span> <span class="keyword">typename</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">if_</span><span class="special"><</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">is_reference</span><span class="special"><</span><span class="identifier">Allocator</span><span class="special">></span>
+              <span class="special">,</span> <span class="identifier">Allocator</span>
+              <span class="special">,</span> <span class="keyword">typename</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">add_reference</span><span class="special"><</span>
+                    <span class="keyword">typename</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">add_const</span><span class="special"><</span><span class="identifier">Allocator</span><span class="special">>::</span><span class="identifier">type</span>
+                <span class="special">>::</span><span class="identifier">type</span>
+            <span class="special">>::</span><span class="identifier">type</span>
+            <span class="identifier">allocator_reference</span><span class="special">;</span>
+<span class="special">};</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">public</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>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">typedef</span> <span class="keyword">typename</span> <span class="identifier">super_t</span><span class="special">::</span><span class="identifier">pointer</span> <span class="identifier">pointer</span><span class="special">;</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">public</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>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">typedef</span> <span class="keyword">typename</span> <span class="identifier">super_t</span><span class="special">::</span><span class="identifier">const_pointer</span> <span class="identifier">const_pointer</span><span class="special">;</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">public</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>
+                    Iterator type
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">typedef</span> <span class="identifier">implementation_defined</span> <span class="identifier">iterator</span><span class="special">;</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">public</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <a class="link" href="../concepts/non_assoc_tree_node.html" title="Non-Associative Tree Node"><span class="bold"><strong>Non-Associative Tree Node</strong></span></a>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Immutable iterator type
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">typedef</span> <span class="identifier">implementation_defined</span> <span class="identifier">const_iterator</span><span class="special">;</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">public</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <a class="link" href="../concepts/non_assoc_tree_node.html" title="Non-Associative Tree Node"><span class="bold"><strong>Non-Associative Tree Node</strong></span></a>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Reverse iterator type
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">typedef</span> <span class="identifier">implementation_defined</span> <span class="identifier">reverse_iterator</span><span class="special">;</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">public</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <a class="link" href="../concepts/reversible_tree_node.html" title="Reversible Tree Node"><span class="bold"><strong>Reversible Tree Node</strong></span></a>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Immutable reverse iterator type
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">typedef</span> <span class="identifier">implementation_defined</span> <span class="identifier">const_reverse_iterator</span><span class="special">;</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">public</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <a class="link" href="../concepts/reversible_tree_node.html" title="Reversible Tree Node"><span class="bold"><strong>Reversible Tree Node</strong></span></a>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Size type
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">typedef</span> <span class="identifier">Size</span> <span class="identifier">size_type</span><span class="special">;</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">public</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>
+                    Emplacement constructor
+                  </p>
+                </td>
+<td>
+<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="special">...</span><span class="identifier">Args</span><span class="special">></span>
+<span class="keyword">explicit</span> <span class="identifier">binary_node_base</span><span class="special">(</span><span class="identifier">Args</span><span class="special">&&</span> <span class="special">...</span><span class="identifier">args</span><span class="special">);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">protected</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>
+                    Emplacement constructor with allocator
+                  </p>
+                </td>
+<td>
+<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="special">...</span><span class="identifier">Args</span><span class="special">></span>
+<span class="keyword">explicit</span> <span class="identifier">binary_node_base</span><span class="special">(</span>
+    <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">container</span><span class="special">::</span><span class="identifier">allocator_arg_t</span>
+  <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">traits</span><span class="special">::</span><span class="identifier">allocator_reference</span> <span class="identifier">allocator</span>
+  <span class="special">,</span> <span class="identifier">Args</span><span class="special">&&</span> <span class="special">...</span><span class="identifier">args</span>
+<span class="special">);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">protected</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>
+                    Derived copy constructor
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">binary_node_base</span><span class="special">(</span><span class="identifier">Derived</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">copy</span><span class="special">);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">protected</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <a class="link" href="../concepts/base_tree_node.html" title="Base Tree Node"><span class="bold"><strong>Base
+                    Tree Node</strong></span></a>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Derived copy constructor with allocator
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">binary_node_base</span><span class="special">(</span>
+    <span class="identifier">Derived</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">copy</span>
+  <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">traits</span><span class="special">::</span><span class="identifier">allocator_reference</span> <span class="identifier">allocator</span>
+<span class="special">);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">protected</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <a class="link" href="../concepts/base_tree_node.html" title="Base Tree Node"><span class="bold"><strong>Base
+                    Tree Node</strong></span></a>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Derived move constructor
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">binary_node_base</span><span class="special">(</span><span class="identifier">Derived</span><span class="special">&&</span> <span class="identifier">source</span><span class="special">);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">protected</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <a class="link" href="../concepts/base_tree_node.html" title="Base Tree Node"><span class="bold"><strong>Base
+                    Tree Node</strong></span></a>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Derived move constructor with allocator
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">binary_node_base</span><span class="special">(</span>
+    <span class="identifier">Derived</span><span class="special">&&</span> <span class="identifier">source</span>
+  <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">traits</span><span class="special">::</span><span class="identifier">allocator_reference</span> <span class="identifier">allocator</span>
+<span class="special">);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">protected</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <a class="link" href="../concepts/base_tree_node.html" title="Base Tree Node"><span class="bold"><strong>Base
+                    Tree Node</strong></span></a>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Base descendant cloning
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">void</span> <span class="identifier">clone_descendants</span><span class="special">(</span><span class="identifier">Derived</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">copy</span><span class="special">);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">protected</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <a class="link" href="../concepts/base_tree_node.html" title="Base Tree Node"><span class="bold"><strong>Base
+                    Tree Node</strong></span></a>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Base descendant movement
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">void</span> <span class="identifier">move_descendants</span><span class="special">(</span><span class="identifier">Derived</span><span class="special">&&</span> <span class="identifier">source</span><span class="special">);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">protected</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <a class="link" href="../concepts/base_tree_node.html" title="Base Tree Node"><span class="bold"><strong>Base
+                    Tree Node</strong></span></a>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Derived copy assignment
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">void</span> <span class="identifier">copy_assign</span><span class="special">(</span><span class="identifier">Derived</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">copy</span><span class="special">);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">protected</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <a class="link" href="../concepts/base_tree_node.html" title="Base Tree Node"><span class="bold"><strong>Base
+                    Tree Node</strong></span></a>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Derived move assignment
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">void</span> <span class="identifier">move_assign</span><span class="special">(</span><span class="identifier">Derived</span><span class="special">&&</span> <span class="identifier">source</span><span class="special">);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">protected</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <a class="link" href="../concepts/base_tree_node.html" title="Base Tree Node"><span class="bold"><strong>Base
+                    Tree Node</strong></span></a>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    User data member read-only access
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">typename</span> <span class="identifier">traits</span><span class="special">::</span><span class="identifier">data_type</span> <span class="keyword">const</span><span class="special">&</span> <span class="keyword">operator</span><span class="special">[](</span><span class="identifier">data_key</span> <span class="keyword">const</span><span class="special">&)</span> <span class="keyword">const</span><span class="special">;</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">FusionKey</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">lazy_enable_if</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">mpl</span><span class="special">::</span><span class="identifier">if_</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">mpl</span><span class="special">::</span><span class="identifier">eval_if</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">fusion</span><span class="special">::</span><span class="identifier">traits</span><span class="special">::</span><span class="identifier">is_sequence</span><span class="special"><</span><span class="identifier">T</span><span class="special">>::</span><span class="identifier">type</span>
+          <span class="special">,</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">fusion</span><span class="special">::</span><span class="identifier">traits</span><span class="special">::</span><span class="identifier">is_associative</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span>
+          <span class="special">,</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">false_</span>
+        <span class="special">>::</span><span class="identifier">type</span>
+      <span class="special">,</span> <span class="identifier">result_of</span><span class="special">::</span><span class="identifier">has_key</span><span class="special"><</span>
+            <span class="identifier">binary_node_base</span><span class="special"><</span><span class="identifier">Derived</span><span class="special">,</span><span class="identifier">T</span><span class="special">,</span><span class="identifier">Size</span><span class="special">,</span><span class="identifier">Allocator</span><span class="special">></span>
+          <span class="special">,</span> <span class="identifier">FusionKey</span>
+        <span class="special">></span>
+      <span class="special">,</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">false_</span>
+    <span class="special">>::</span><span class="identifier">type</span>
+  <span class="special">,</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">fusion</span><span class="special">::</span><span class="identifier">result_of</span><span class="special">::</span><span class="identifier">at_key</span><span class="special"><</span><span class="identifier">T</span> <span class="keyword">const</span><span class="special">,</span><span class="identifier">FusionKey</span><span class="special">></span>
+<span class="special">>::</span><span class="identifier">type</span>
+    <span class="keyword">operator</span><span class="special">[](</span><span class="identifier">FusionKey</span> <span class="keyword">const</span><span class="special">&)</span> <span class="keyword">const</span><span class="special">;</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">public</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">binary_node_base</span></code>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    User data member access
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">typename</span> <span class="identifier">traits</span><span class="special">::</span><span class="identifier">data_type</span><span class="special">&</span> <span class="keyword">operator</span><span class="special">[](</span><span class="identifier">data_key</span> <span class="keyword">const</span><span class="special">&);</span>
+
+<span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">FusionKey</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">lazy_enable_if</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">mpl</span><span class="special">::</span><span class="identifier">if_</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">mpl</span><span class="special">::</span><span class="identifier">eval_if</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">fusion</span><span class="special">::</span><span class="identifier">traits</span><span class="special">::</span><span class="identifier">is_sequence</span><span class="special"><</span><span class="identifier">T</span><span class="special">>::</span><span class="identifier">type</span>
+          <span class="special">,</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">fusion</span><span class="special">::</span><span class="identifier">traits</span><span class="special">::</span><span class="identifier">is_associative</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span>
+          <span class="special">,</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">false_</span>
+        <span class="special">>::</span><span class="identifier">type</span>
+      <span class="special">,</span> <span class="identifier">result_of</span><span class="special">::</span><span class="identifier">has_key</span><span class="special"><</span>
+            <span class="identifier">binary_node_base</span><span class="special"><</span><span class="identifier">Derived</span><span class="special">,</span><span class="identifier">T</span><span class="special">,</span><span class="identifier">Size</span><span class="special">,</span><span class="identifier">Allocator</span><span class="special">></span>
+          <span class="special">,</span> <span class="identifier">FusionKey</span>
+        <span class="special">></span>
+      <span class="special">,</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">false_</span>
+    <span class="special">>::</span><span class="identifier">type</span>
+  <span class="special">,</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">fusion</span><span class="special">::</span><span class="identifier">result_of</span><span class="special">::</span><span class="identifier">at_key</span><span class="special"><</span><span class="identifier">T</span><span class="special">,</span><span class="identifier">FusionKey</span><span class="special">></span>
+<span class="special">>::</span><span class="identifier">type</span>
+    <span class="keyword">operator</span><span class="special">[](</span><span class="identifier">FusionKey</span> <span class="keyword">const</span><span class="special">&);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">public</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">binary_node_base</span></code>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Parent read-only access
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">const_pointer</span> <span class="identifier">get_parent_ptr</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">public</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>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">pointer</span> <span class="identifier">get_parent_ptr</span><span class="special">();</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">public</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-of-left creation
+                  </p>
+                </td>
+<td>
+<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="special">...</span><span class="identifier">Args</span><span class="special">></span>
+<span class="identifier">pointer</span> <span class="identifier">emplace_parent_of_left</span><span class="special">(</span><span class="identifier">Args</span><span class="special">&&</span> <span class="special">...</span><span class="identifier">args</span><span class="special">);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">public</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <a class="link" href="../concepts/binary_tree_node.html" title="Binary Tree Node"><span class="bold"><strong>Binary Tree Node</strong></span></a>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Parent-of-right creation
+                  </p>
+                </td>
+<td>
+<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="special">...</span><span class="identifier">Args</span><span class="special">></span>
+<span class="identifier">pointer</span> <span class="identifier">emplace_parent_of_right</span><span class="special">(</span><span class="identifier">Args</span><span class="special">&&</span> <span class="special">...</span><span class="identifier">args</span><span class="special">);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">public</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <a class="link" href="../concepts/binary_tree_node.html" title="Binary Tree Node"><span class="bold"><strong>Binary Tree Node</strong></span></a>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Left child creation
+                  </p>
+                </td>
+<td>
+<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="special">...</span><span class="identifier">Args</span><span class="special">></span>
+<span class="identifier">iterator</span> <span class="identifier">emplace_left</span><span class="special">(</span><span class="identifier">Args</span><span class="special">&&</span> <span class="special">...</span><span class="identifier">args</span><span class="special">);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">public</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <a class="link" href="../concepts/binary_tree_node.html" title="Binary Tree Node"><span class="bold"><strong>Binary Tree Node</strong></span></a>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Left child copy creation
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">iterator</span> <span class="identifier">insert_left</span><span class="special">(</span><span class="identifier">Derived</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">child</span><span class="special">);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">public</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <a class="link" href="../concepts/binary_tree_node.html" title="Binary Tree Node"><span class="bold"><strong>Binary Tree Node</strong></span></a>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Right child creation
+                  </p>
+                </td>
+<td>
+<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="special">...</span><span class="identifier">Args</span><span class="special">></span>
+<span class="identifier">iterator</span> <span class="identifier">emplace_right</span><span class="special">(</span><span class="identifier">Args</span><span class="special">&&</span> <span class="special">...</span><span class="identifier">args</span><span class="special">);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">public</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <a class="link" href="../concepts/binary_tree_node.html" title="Binary Tree Node"><span class="bold"><strong>Binary Tree Node</strong></span></a>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Right child copy creation
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">iterator</span> <span class="identifier">insert_right</span><span class="special">(</span><span class="identifier">Derived</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">child</span><span class="special">);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">public</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <a class="link" href="../concepts/binary_tree_node.html" title="Binary Tree Node"><span class="bold"><strong>Binary Tree Node</strong></span></a>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Left child read-only access
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">const_pointer</span> <span class="identifier">get_left_child_ptr</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">public</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <a class="link" href="../concepts/binary_tree_node.html" title="Binary Tree Node"><span class="bold"><strong>Binary Tree Node</strong></span></a>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Left child access
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">pointer</span> <span class="identifier">get_left_child_ptr</span><span class="special">();</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">public</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <a class="link" href="../concepts/binary_tree_node.html" title="Binary Tree Node"><span class="bold"><strong>Binary Tree Node</strong></span></a>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Right child read-only access
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">const_pointer</span> <span class="identifier">get_right_child_ptr</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">public</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <a class="link" href="../concepts/binary_tree_node.html" title="Binary Tree Node"><span class="bold"><strong>Binary Tree Node</strong></span></a>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Right child access
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">pointer</span> <span class="identifier">get_right_child_ptr</span><span class="special">();</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">public</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <a class="link" href="../concepts/binary_tree_node.html" title="Binary Tree Node"><span class="bold"><strong>Binary Tree Node</strong></span></a>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Children range begin read-only access
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">const_iterator</span> <span class="identifier">cbegin</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+<span class="identifier">const_iterator</span> <span class="identifier">begin</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">public</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>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">iterator</span> <span class="identifier">begin</span><span class="special">();</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">public</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 read-only access
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">const_iterator</span> <span class="identifier">cend</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+<span class="identifier">const_iterator</span> <span class="identifier">end</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">public</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>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">iterator</span> <span class="identifier">end</span><span class="special">();</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">public</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 reverse range begin read-only access
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">const_reverse_iterator</span> <span class="identifier">crbegin</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+<span class="identifier">const_reverse_iterator</span> <span class="identifier">rbegin</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">public</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <a class="link" href="../concepts/reversible_tree_node.html" title="Reversible Tree Node"><span class="bold"><strong>Reversible Tree Node</strong></span></a>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Children reverse range begin access
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">reverse_iterator</span> <span class="identifier">rbegin</span><span class="special">();</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">public</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <a class="link" href="../concepts/reversible_tree_node.html" title="Reversible Tree Node"><span class="bold"><strong>Reversible Tree Node</strong></span></a>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Children reverse range past-the-end read-only access
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">const_reverse_iterator</span> <span class="identifier">crend</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+<span class="identifier">const_reverse_iterator</span> <span class="identifier">rend</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">public</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <a class="link" href="../concepts/reversible_tree_node.html" title="Reversible Tree Node"><span class="bold"><strong>Reversible Tree Node</strong></span></a>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Children reverse range past-the-end access
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">reverse_iterator</span> <span class="identifier">rend</span><span class="special">();</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">public</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <a class="link" href="../concepts/reversible_tree_node.html" title="Reversible Tree Node"><span class="bold"><strong>Reversible Tree Node</strong></span></a>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Children range size query
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">size_type</span> <span class="identifier">size</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">public</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>
+                    Rotate left
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">pointer</span> <span class="identifier">rotate_left</span><span class="special">();</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">public</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <a class="link" href="../concepts/binary_tree_node.html" title="Binary Tree Node"><span class="bold"><strong>Binary Tree Node</strong></span></a>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Rotate right
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">pointer</span> <span class="identifier">rotate_right</span><span class="special">();</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">public</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <a class="link" href="../concepts/binary_tree_node.html" title="Binary Tree Node"><span class="bold"><strong>Binary Tree Node</strong></span></a>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Remove left child
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">bool</span> <span class="identifier">erase_left</span><span class="special">();</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">public</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <a class="link" href="../concepts/binary_tree_node.html" title="Binary Tree Node"><span class="bold"><strong>Binary Tree Node</strong></span></a>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Remove right child
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">bool</span> <span class="identifier">erase_right</span><span class="special">();</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">public</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <a class="link" href="../concepts/binary_tree_node.html" title="Binary Tree Node"><span class="bold"><strong>Binary Tree Node</strong></span></a>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Leaf node query
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">bool</span> <span class="identifier">empty</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">public</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>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">void</span> <span class="identifier">clear</span><span class="special">();</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">public</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>
+                    Derived read-only access
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">const_pointer</span> <span class="identifier">get_derived</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">public</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <a class="link" href="../concepts/base_tree_node.html" title="Base Tree Node"><span class="bold"><strong>Base
+                    Tree Node</strong></span></a>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Derived access
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">pointer</span> <span class="identifier">get_derived</span><span class="special">();</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">public</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <a class="link" href="../concepts/base_tree_node.html" title="Base Tree Node"><span class="bold"><strong>Base
+                    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.binary_node_base.non_members"></a><a class="link" href="binary_node_base.html#tree_node.reference.binary_node_base.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>
+                    Definition
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Where defined
+                  </p>
+                </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+                  <p>
+                    User data read-only access
+                  </p>
+                </td>
+<td>
+<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">Derived</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Size</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Allocator</span><span class="special">></span>
+    <span class="keyword">typename</span> <span class="identifier">binary_node_base</span><span class="special"><</span>
+        <span class="identifier">Derived</span>
+      <span class="special">,</span> <span class="identifier">T</span>
+      <span class="special">,</span> <span class="identifier">Size</span>
+      <span class="special">,</span> <span class="identifier">Allocator</span>
+    <span class="special">>::</span><span class="identifier">traits</span><span class="special">::</span><span class="identifier">data_type</span> <span class="keyword">const</span><span class="special">&</span>
+        <span class="identifier">get</span><span class="special">(</span>
+            <span class="identifier">binary_node_base</span><span class="special"><</span><span class="identifier">Derived</span><span class="special">,</span><span class="identifier">T</span><span class="special">,</span><span class="identifier">Size</span><span class="special">,</span><span class="identifier">Allocator</span><span class="special">></span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">node</span>
+          <span class="special">,</span> <span class="identifier">data_key</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">key</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">Derived</span>
+      <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">T</span>
+      <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Size</span>
+      <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Allocator</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">std</span><span class="special">::</span><span class="identifier">tr1</span><span class="special">::</span><span class="identifier">is_same</span><span class="special"><</span><span class="identifier">Key</span><span class="special">,</span><span class="identifier">data_key</span><span class="special">></span>
+      <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">binary_node_base</span><span class="special"><</span>
+            <span class="identifier">Derived</span>
+          <span class="special">,</span> <span class="identifier">T</span>
+          <span class="special">,</span> <span class="identifier">Size</span>
+          <span class="special">,</span> <span class="identifier">Allocator</span>
+        <span class="special">>::</span><span class="identifier">traits</span><span class="special">::</span><span class="identifier">data_type</span> <span class="keyword">const</span><span class="special">&</span>
+    <span class="special">>::</span><span class="identifier">type</span>
+        <span class="identifier">get</span><span class="special">(</span><span class="identifier">binary_node_base</span><span class="special"><</span><span class="identifier">Derived</span><span class="special">,</span><span class="identifier">T</span><span class="special">,</span><span class="identifier">Size</span><span class="special">,</span><span class="identifier">Allocator</span><span class="special">></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>
+                </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>
+                    User data access
+                  </p>
+                </td>
+<td>
+<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">Derived</span>
+      <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">T</span>
+      <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Size</span>
+      <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Allocator</span>
+    <span class="special">></span>
+    <span class="keyword">typename</span> <span class="identifier">binary_node_base</span><span class="special"><</span><span class="identifier">Derived</span><span class="special">,</span><span class="identifier">T</span><span class="special">,</span><span class="identifier">Size</span><span class="special">,</span><span class="identifier">Allocator</span><span class="special">>::</span><span class="identifier">traits</span><span class="special">::</span><span class="identifier">data_type</span><span class="special">&</span>
+        <span class="identifier">get</span><span class="special">(</span>
+            <span class="identifier">binary_node_base</span><span class="special"><</span><span class="identifier">Derived</span><span class="special">,</span><span class="identifier">T</span><span class="special">,</span><span class="identifier">Size</span><span class="special">,</span><span class="identifier">Allocator</span><span class="special">>&</span> <span class="identifier">node</span>
+          <span class="special">,</span> <span class="identifier">data_key</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">key</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">Derived</span>
+      <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">T</span>
+      <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Size</span>
+      <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Allocator</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">std</span><span class="special">::</span><span class="identifier">tr1</span><span class="special">::</span><span class="identifier">is_same</span><span class="special"><</span><span class="identifier">Key</span><span class="special">,</span><span class="identifier">data_key</span><span class="special">></span>
+      <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">binary_node_base</span><span class="special"><</span><span class="identifier">Derived</span><span class="special">,</span><span class="identifier">T</span><span class="special">,</span><span class="identifier">Size</span><span class="special">,</span><span class="identifier">Allocator</span><span class="special">>::</span><span class="identifier">traits</span><span class="special">::</span><span class="identifier">data_type</span><span class="special">&</span>
+    <span class="special">>::</span><span class="identifier">type</span>
+        <span class="identifier">get</span><span class="special">(</span><span class="identifier">binary_node_base</span><span class="special"><</span><span class="identifier">Derived</span><span class="special">,</span><span class="identifier">T</span><span class="special">,</span><span class="identifier">Size</span><span class="special">,</span><span class="identifier">Allocator</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>
+                </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>
+                    User data modification
+                  </p>
+                </td>
+<td>
+<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">Derived</span>
+      <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">T</span>
+      <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Size</span>
+      <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Allocator</span>
+      <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">V</span>
+    <span class="special">></span>
+    <span class="keyword">void</span>
+        <span class="identifier">put</span><span class="special">(</span>
+            <span class="identifier">binary_node_base</span><span class="special"><</span><span class="identifier">Derived</span><span class="special">,</span><span class="identifier">T</span><span class="special">,</span><span class="identifier">Size</span><span class="special">,</span><span class="identifier">Allocator</span><span class="special">>&</span> <span class="identifier">node</span>
+          <span class="special">,</span> <span class="identifier">data_key</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">key</span>
+          <span class="special">,</span> <span class="identifier">V</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">value</span>
+        <span class="special">);</span>
+<span class="special">}}</span>  <span class="comment">// namespace boost::tree_node</span>
+</pre>
+                </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>
+                    Key-value read-only access
+                  </p>
+                </td>
+<td>
+<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">Derived</span>
+      <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">T</span>
+      <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Size</span>
+      <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Allocator</span>
+      <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">FusionKey</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">lazy_enable_if</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">mpl</span><span class="special">::</span><span class="identifier">if_</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">mpl</span><span class="special">::</span><span class="identifier">eval_if</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">fusion</span><span class="special">::</span><span class="identifier">traits</span><span class="special">::</span><span class="identifier">is_sequence</span><span class="special"><</span><span class="identifier">T</span><span class="special">>::</span><span class="identifier">type</span>
+              <span class="special">,</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">fusion</span><span class="special">::</span><span class="identifier">traits</span><span class="special">::</span><span class="identifier">is_associative</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span>
+              <span class="special">,</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">false_</span>
+            <span class="special">>::</span><span class="identifier">type</span>
+          <span class="special">,</span> <span class="identifier">result_of</span><span class="special">::</span><span class="identifier">has_key</span><span class="special"><</span>
+                <span class="identifier">binary_node_base</span><span class="special"><</span><span class="identifier">Derived</span><span class="special">,</span><span class="identifier">T</span><span class="special">,</span><span class="identifier">Size</span><span class="special">,</span><span class="identifier">Allocator</span><span class="special">></span>
+              <span class="special">,</span> <span class="identifier">FusionKey</span>
+            <span class="special">></span>
+          <span class="special">,</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">false_</span>
+        <span class="special">>::</span><span class="identifier">type</span>
+      <span class="special">,</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">fusion</span><span class="special">::</span><span class="identifier">result_of</span><span class="special">::</span><span class="identifier">at_key</span><span class="special"><</span><span class="identifier">T</span> <span class="keyword">const</span><span class="special">,</span><span class="identifier">FusionKey</span><span class="special">></span>
+    <span class="special">>::</span><span class="identifier">type</span>
+        <span class="identifier">get</span><span class="special">(</span>
+            <span class="identifier">binary_node_base</span><span class="special"><</span><span class="identifier">Derived</span><span class="special">,</span><span class="identifier">T</span><span class="special">,</span><span class="identifier">Size</span><span class="special">,</span><span class="identifier">Allocator</span><span class="special">></span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">node</span>
+          <span class="special">,</span> <span class="identifier">FusionKey</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">key</span>
+        <span class="special">);</span>
+
+    <span class="keyword">template</span> <span class="special"><</span>
+        <span class="keyword">typename</span> <span class="identifier">FusionKey</span>
+      <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Derived</span>
+      <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">T</span>
+      <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Size</span>
+      <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Allocator</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">lazy_enable_if</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">mpl</span><span class="special">::</span><span class="identifier">if_</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">mpl</span><span class="special">::</span><span class="identifier">eval_if</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">fusion</span><span class="special">::</span><span class="identifier">traits</span><span class="special">::</span><span class="identifier">is_sequence</span><span class="special"><</span><span class="identifier">T</span><span class="special">>::</span><span class="identifier">type</span>
+              <span class="special">,</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">fusion</span><span class="special">::</span><span class="identifier">traits</span><span class="special">::</span><span class="identifier">is_associative</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span>
+              <span class="special">,</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">false_</span>
+            <span class="special">>::</span><span class="identifier">type</span>
+          <span class="special">,</span> <span class="identifier">result_of</span><span class="special">::</span><span class="identifier">has_key</span><span class="special"><</span>
+                <span class="identifier">binary_node_base</span><span class="special"><</span><span class="identifier">Derived</span><span class="special">,</span><span class="identifier">T</span><span class="special">,</span><span class="identifier">Size</span><span class="special">,</span><span class="identifier">Allocator</span><span class="special">></span>
+              <span class="special">,</span> <span class="identifier">FusionKey</span>
+            <span class="special">></span>
+          <span class="special">,</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">false_</span>
+        <span class="special">>::</span><span class="identifier">type</span>
+      <span class="special">,</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">fusion</span><span class="special">::</span><span class="identifier">result_of</span><span class="special">::</span><span class="identifier">at_key</span><span class="special"><</span><span class="identifier">T</span> <span class="keyword">const</span><span class="special">,</span><span class="identifier">FusionKey</span><span class="special">></span>
+    <span class="special">>::</span><span class="identifier">type</span>
+        <span class="identifier">get</span><span class="special">(</span><span class="identifier">binary_node_base</span><span class="special"><</span><span class="identifier">Derived</span><span class="special">,</span><span class="identifier">T</span><span class="special">,</span><span class="identifier">Size</span><span class="special">,</span><span class="identifier">Allocator</span><span class="special">></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>
+                </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>
+                    Key-value access
+                  </p>
+                </td>
+<td>
+<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">Derived</span>
+      <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">T</span>
+      <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Size</span>
+      <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Allocator</span>
+      <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">FusionKey</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">lazy_enable_if</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">mpl</span><span class="special">::</span><span class="identifier">if_</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">mpl</span><span class="special">::</span><span class="identifier">eval_if</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">fusion</span><span class="special">::</span><span class="identifier">traits</span><span class="special">::</span><span class="identifier">is_sequence</span><span class="special"><</span><span class="identifier">T</span><span class="special">>::</span><span class="identifier">type</span>
+              <span class="special">,</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">fusion</span><span class="special">::</span><span class="identifier">traits</span><span class="special">::</span><span class="identifier">is_associative</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span>
+              <span class="special">,</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">false_</span>
+            <span class="special">>::</span><span class="identifier">type</span>
+          <span class="special">,</span> <span class="identifier">result_of</span><span class="special">::</span><span class="identifier">has_key</span><span class="special"><</span>
+                <span class="identifier">binary_node_base</span><span class="special"><</span><span class="identifier">Derived</span><span class="special">,</span><span class="identifier">T</span><span class="special">,</span><span class="identifier">Size</span><span class="special">,</span><span class="identifier">Allocator</span><span class="special">></span>
+              <span class="special">,</span> <span class="identifier">FusionKey</span>
+            <span class="special">></span>
+          <span class="special">,</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">false_</span>
+        <span class="special">>::</span><span class="identifier">type</span>
+      <span class="special">,</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">fusion</span><span class="special">::</span><span class="identifier">result_of</span><span class="special">::</span><span class="identifier">at_key</span><span class="special"><</span><span class="identifier">T</span><span class="special">,</span><span class="identifier">FusionKey</span><span class="special">></span>
+    <span class="special">>::</span><span class="identifier">type</span>
+        <span class="identifier">get</span><span class="special">(</span><span class="identifier">binary_node_base</span><span class="special"><</span><span class="identifier">Derived</span><span class="special">,</span><span class="identifier">T</span><span class="special">,</span><span class="identifier">Size</span><span class="special">,</span><span class="identifier">Allocator</span><span class="special">>&</span> <span class="identifier">node</span><span class="special">,</span> <span class="identifier">FusionKey</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">key</span><span class="special">);</span>
+
+    <span class="keyword">template</span> <span class="special"><</span>
+        <span class="keyword">typename</span> <span class="identifier">FusionKey</span>
+      <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Derived</span>
+      <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">T</span>
+      <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Size</span>
+      <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Allocator</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">lazy_enable_if</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">mpl</span><span class="special">::</span><span class="identifier">if_</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">mpl</span><span class="special">::</span><span class="identifier">eval_if</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">fusion</span><span class="special">::</span><span class="identifier">traits</span><span class="special">::</span><span class="identifier">is_sequence</span><span class="special"><</span><span class="identifier">T</span><span class="special">>::</span><span class="identifier">type</span>
+              <span class="special">,</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">fusion</span><span class="special">::</span><span class="identifier">traits</span><span class="special">::</span><span class="identifier">is_associative</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span>
+              <span class="special">,</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">false_</span>
+            <span class="special">>::</span><span class="identifier">type</span>
+          <span class="special">,</span> <span class="identifier">result_of</span><span class="special">::</span><span class="identifier">has_key</span><span class="special"><</span>
+                <span class="identifier">binary_node_base</span><span class="special"><</span><span class="identifier">Derived</span><span class="special">,</span><span class="identifier">T</span><span class="special">,</span><span class="identifier">Size</span><span class="special">,</span><span class="identifier">Allocator</span><span class="special">></span>
+              <span class="special">,</span> <span class="identifier">FusionKey</span>
+            <span class="special">></span>
+          <span class="special">,</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">false_</span>
+        <span class="special">>::</span><span class="identifier">type</span>
+      <span class="special">,</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">fusion</span><span class="special">::</span><span class="identifier">result_of</span><span class="special">::</span><span class="identifier">at_key</span><span class="special"><</span><span class="identifier">T</span><span class="special">,</span><span class="identifier">FusionKey</span><span class="special">></span>
+    <span class="special">>::</span><span class="identifier">type</span>
+        <span class="identifier">get</span><span class="special">(</span><span class="identifier">binary_node_base</span><span class="special"><</span><span class="identifier">Derived</span><span class="special">,</span><span class="identifier">T</span><span class="special">,</span><span class="identifier">Size</span><span class="special">,</span><span class="identifier">Allocator</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>
+                </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>
+                    Key-value modification
+                  </p>
+                </td>
+<td>
+<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">Derived</span>
+      <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">T</span>
+      <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Size</span>
+      <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Allocator</span>
+      <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">FusionKey</span>
+      <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">V</span>
+    <span class="special">></span>
+    <span class="keyword">void</span>
+        <span class="identifier">put</span><span class="special">(</span>
+            <span class="identifier">binary_node_base</span><span class="special"><</span><span class="identifier">Derived</span><span class="special">,</span><span class="identifier">T</span><span class="special">,</span><span class="identifier">Size</span><span class="special">,</span><span class="identifier">Allocator</span><span class="special">>&</span> <span class="identifier">node</span>
+          <span class="special">,</span> <span class="identifier">FusionKey</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">key</span>
+          <span class="special">,</span> <span class="identifier">V</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">value</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="keyword">typename</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">if_</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">mpl</span><span class="special">::</span><span class="identifier">eval_if</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">fusion</span><span class="special">::</span><span class="identifier">traits</span><span class="special">::</span><span class="identifier">is_sequence</span><span class="special"><</span><span class="identifier">T</span><span class="special">>::</span><span class="identifier">type</span>
+                <span class="special">,</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">fusion</span><span class="special">::</span><span class="identifier">traits</span><span class="special">::</span><span class="identifier">is_associative</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span>
+                <span class="special">,</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">false_</span>
+                <span class="special">>::</span><span class="identifier">type</span>
+              <span class="special">,</span> <span class="identifier">result_of</span><span class="special">::</span><span class="identifier">has_key</span><span class="special"><</span>
+                    <span class="identifier">binary_node_base</span><span class="special"><</span><span class="identifier">Derived</span><span class="special">,</span><span class="identifier">T</span><span class="special">,</span><span class="identifier">Size</span><span class="special">,</span><span class="identifier">Allocator</span><span class="special">></span>
+                  <span class="special">,</span> <span class="identifier">FusionKey</span>
+                <span class="special">></span>
+              <span class="special">,</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">false_</span>
+              <span class="special">>::</span><span class="identifier">type</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">true_</span>
+            <span class="special">>::</span><span class="identifier">type</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">true_</span><span class="special">()</span>
+        <span class="special">);</span>
+<span class="special">}}</span>  <span class="comment">// namespace boost::tree_node</span>
+</pre>
+                </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>
+<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-2013 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="binary_node_gen.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="binary_node_base_gen.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/binary_node_base_gen.html
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/binary_node_base_gen.html	2013-07-07 14:52:52 EDT (Sun, 07 Jul 2013)	(r84977)
@@ -0,0 +1,207 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>binary_node_base_gen<Size,AllocatorSelector></title>
+<link rel="stylesheet" href="http://www.boost.org/doc/libs/release/doc/src/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.77.1">
+<link rel="home" href="../../index.html" title="Chapter 1. tree_node 0.5">
+<link rel="up" href="../reference.html" title="Reference">
+<link rel="prev" href="binary_node_base.html" title="binary_node_base<Derived,T,Selector>">
+<link rel="next" href="nary_node.html" title="nary_node<T,Selector>">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr><td valign="top"><img alt="C++ Boost" width="277" height="86" src="../../../../../../boost.png"></td></tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="binary_node_base.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="nary_node.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="tree_node.reference.binary_node_base_gen"></a><a class="link" href="binary_node_base_gen.html" title="binary_node_base_gen<Size,AllocatorSelector>"><code class="computeroutput"><span class="identifier">binary_node_base_gen</span><span class="special"><</span><span class="identifier">Size</span><span class="special">,</span><span class="identifier">AllocatorSelector</span><span class="special">></span></code></a>
+</h3></div></div></div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.binary_node_base_gen.synopsis"></a><a class="link" href="binary_node_base_gen.html#tree_node.reference.binary_node_base_gen.synopsis" title="Synopsis">Synopsis</a>
+</h4></div></div></div>
+<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">Size</span> <span class="special">=</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">uint32_t</span>
+      <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">AllocatorSelector</span> <span class="special">=</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">std_allocator_selector</span>
+    <span class="special">></span>
+    <span class="keyword">struct</span> <span class="identifier">binary_node_base_gen</span>
+    <span class="special">{</span>
+        <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">Derived</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span>
+        <span class="keyword">struct</span> <span class="identifier">apply</span>
+        <span class="special">{</span>
+            <span class="keyword">typedef</span> <span class="identifier">binary_node_base</span><span class="special"><</span>
+                        <span class="identifier">Derived</span>
+                      <span class="special">,</span> <span class="identifier">T</span>
+                      <span class="special">,</span> <span class="identifier">Size</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">mpl</span><span class="special">::</span><span class="identifier">apply_wrap1</span><span class="special"><</span>
+                            <span class="identifier">AllocatorSelector</span>
+                          <span class="special">,</span> <span class="identifier">Derived</span>
+                        <span class="special">>::</span><span class="identifier">type</span>
+                    <span class="special">></span>
+                    <span class="identifier">type</span><span class="special">;</span>
+        <span class="special">};</span>
+    <span class="special">};</span>
+
+    <span class="keyword">typedef</span> <span class="identifier">binary_node_base_gen</span><span class="special"><></span> <span class="identifier">binary_node_base_default_gen</span><span class="special">;</span>
+<span class="special">}}</span>  <span class="comment">// namespace boost::tree_node</span>
+</pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.binary_node_base_gen.description"></a><a class="link" href="binary_node_base_gen.html#tree_node.reference.binary_node_base_gen.description" title="Description">Description</a>
+</h4></div></div></div>
+<p>
+          Minimalist selector that can be passed on to generic functions and/or data
+          structures that use models of the <a class="link" href="../concepts/binary_tree_node.html" title="Binary Tree Node"><span class="bold"><strong>Binary Tree Node</strong></span></a> and <a class="link" href="../concepts/base_tree_node.html" title="Base Tree Node"><span class="bold"><strong>Base Tree Node</strong></span></a> concepts.
+        </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.binary_node_base_gen.definition"></a><a class="link" href="binary_node_base_gen.html#tree_node.reference.binary_node_base_gen.definition" title="Where defined">Where
+        defined</a>
+</h4></div></div></div>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span>boost/tree_node/binary_node.hpp<span class="special">></span>
+</pre>
+<p>
+          To register under Boost.Typeof:
+        </p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span>boost/typeof/boost/tree_node/binary_node.hpp<span class="special">></span>
+</pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.binary_node_base_gen.tpl_param"></a><a class="link" href="binary_node_base_gen.html#tree_node.reference.binary_node_base_gen.tpl_param" title="Template Parameters">Template
+        Parameters</a>
+</h4></div></div></div>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+                  <p>
+                    Parameter
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Description
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Default
+                  </p>
+                </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">Size</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    The size type of the return type of this metafunction class.
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">uint32_t</span></code>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">AllocatorSelector</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    A Unary Metafunction Class that
+                    takes in the return type of this metafunction class and returns
+                    either an allocator model or a mutable reference to one.
+                  </p>
+                </td>
+<td>
+                  <p>
+                    boost::std_allocator_selector
+                  </p>
+                </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.binary_node_base_gen.model_of"></a><a class="link" href="binary_node_base_gen.html#tree_node.reference.binary_node_base_gen.model_of" title="Model of">Model
+        of</a>
+</h4></div></div></div>
+<p>
+          <a class="link" href="../concepts/base_type_generator.html" title="Base Type Generator"><span class="bold"><strong>Base
+          Type Generator</strong></span></a>
+        </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.binary_node_base_gen.expressions"></a><a class="link" href="binary_node_base_gen.html#tree_node.reference.binary_node_base_gen.expressions" title="Expression Semantics">Expression
+        Semantics</a>
+</h4></div></div></div>
+<p>
+          Let <code class="computeroutput"><span class="identifier">Derived</span></code> be the type
+          that will inherit from <a class="link" href="binary_node_base.html" title="binary_node_base<Derived,T,Selector>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">binary_node_base</span></code></a>.
+        </p>
+<p>
+          Let <code class="computeroutput"><span class="identifier">T</span></code> be the user data
+          type.
+        </p>
+<pre class="programlisting"><span class="keyword">typedef</span> boost::mpl::apply_wrap2<span class="special"><</span>
+            <span class="identifier">binary_node_base_gen</span><span class="special"><</span><span class="identifier">Size</span><span class="special">,</span><span class="identifier">AllocatorSelector</span><span class="special">></span>
+          <span class="special">,</span> <span class="identifier">Derived</span>
+          <span class="special">,</span> <span class="identifier">T</span>
+        <span class="special">>::</span><span class="identifier">type</span>
+        <span class="identifier">r</span><span class="special">;</span>
+</pre>
+<p>
+          <span class="bold"><strong>Return type:</strong></span>
+        </p>
+<pre class="programlisting"><a class="link" href="binary_node_base.html" title="binary_node_base<Derived,T,Selector>">tree_node::binary_node_base</a><span class="special"><</span>
+    <span class="identifier">Derived</span>
+  <span class="special">,</span> <span class="identifier">T</span>
+  <span class="special">,</span> <span class="identifier">Size</span>
+  <span class="special">,</span> boost::mpl::apply_wrap1<span class="special"><</span><span class="identifier">AllocatorSelector</span><span class="special">,</span><span class="identifier">Derived</span><span class="special">>::</span><span class="identifier">type</span>
+<span class="special">></span>
+</pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.binary_node_base_gen.complexity"></a><a class="link" href="binary_node_base_gen.html#tree_node.reference.binary_node_base_gen.complexity" title="Complexity">Complexity</a>
+</h4></div></div></div>
+<p>
+          Compile time.
+        </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-2013 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="binary_node_base.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="nary_node.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/binary_node_gen.html
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/binary_node_gen.html	2013-07-07 14:52:52 EDT (Sun, 07 Jul 2013)	(r84977)
@@ -0,0 +1,183 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>binary_node_gen<Size,AllocatorSelector></title>
+<link rel="stylesheet" href="http://www.boost.org/doc/libs/release/doc/src/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.77.1">
+<link rel="home" href="../../index.html" title="Chapter 1. tree_node 0.5">
+<link rel="up" href="../reference.html" title="Reference">
+<link rel="prev" href="binary_node.html" title="binary_node<T,Size,AllocatorSelector>">
+<link rel="next" href="binary_node_base.html" title="binary_node_base<Derived,T,Selector>">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr><td valign="top"><img alt="C++ Boost" width="277" height="86" src="../../../../../../boost.png"></td></tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="binary_node.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="binary_node_base.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="tree_node.reference.binary_node_gen"></a><a class="link" href="binary_node_gen.html" title="binary_node_gen<Size,AllocatorSelector>"><code class="computeroutput"><span class="identifier">binary_node_gen</span><span class="special"><</span><span class="identifier">Size</span><span class="special">,</span><span class="identifier">AllocatorSelector</span><span class="special">></span></code></a>
+</h3></div></div></div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.binary_node_gen.synopsis"></a><a class="link" href="binary_node_gen.html#tree_node.reference.binary_node_gen.synopsis" title="Synopsis">Synopsis</a>
+</h4></div></div></div>
+<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">Size</span> <span class="special">=</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">uint32_t</span>
+      <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">AllocatorSelector</span> <span class="special">=</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">std_allocator_selector</span>
+    <span class="special">></span>
+    <span class="keyword">struct</span> <span class="identifier">binary_node_gen</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">struct</span> <span class="identifier">apply</span>
+        <span class="special">{</span>
+            <span class="keyword">typedef</span> <span class="identifier">binary_node</span><span class="special"><</span><span class="identifier">T</span><span class="special">,</span><span class="identifier">Size</span><span class="special">,</span><span class="identifier">AllocatorSelector</span><span class="special">></span> <span class="identifier">type</span><span class="special">;</span>
+        <span class="special">};</span>
+    <span class="special">};</span>
+
+    <span class="keyword">typedef</span> <span class="identifier">binary_node_gen</span><span class="special"><></span> <span class="identifier">binary_node_default_gen</span><span class="special">;</span>
+<span class="special">}}</span>  <span class="comment">// namespace boost::tree_node</span>
+</pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.binary_node_gen.description"></a><a class="link" href="binary_node_gen.html#tree_node.reference.binary_node_gen.description" title="Description">Description</a>
+</h4></div></div></div>
+<p>
+          Minimalist selector that can be passed on to generic functions and/or data
+          structures that use <a class="link" href="../concepts/binary_tree_node.html" title="Binary Tree Node"><span class="bold"><strong>Binary Tree Node</strong></span></a> models.
+        </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.binary_node_gen.definition"></a><a class="link" href="binary_node_gen.html#tree_node.reference.binary_node_gen.definition" title="Where defined">Where
+        defined</a>
+</h4></div></div></div>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span>boost/tree_node/binary_node.hpp<span class="special">></span>
+</pre>
+<p>
+          To register under Boost.Typeof:
+        </p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span>boost/typeof/boost/tree_node/binary_node.hpp<span class="special">></span>
+</pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.binary_node_gen.tpl_param"></a><a class="link" href="binary_node_gen.html#tree_node.reference.binary_node_gen.tpl_param" title="Template Parameters">Template
+        Parameters</a>
+</h4></div></div></div>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+                  <p>
+                    Parameter
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Description
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Default
+                  </p>
+                </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">Size</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    The size type of the return type of this metafunction class.
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">uint32_t</span></code>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">AllocatorSelector</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    A Unary Metafunction Class that
+                    takes in the return type of this metafunction class and returns
+                    either an allocator model or a mutable reference to one.
+                  </p>
+                </td>
+<td>
+                  <p>
+                    boost::std_allocator_selector
+                  </p>
+                </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.binary_node_gen.model_of"></a><a class="link" href="binary_node_gen.html#tree_node.reference.binary_node_gen.model_of" title="Model of">Model
+        of</a>
+</h4></div></div></div>
+<p>
+          <a class="link" href="../concepts/node_type_generator.html" title="Node Type Generator"><span class="bold"><strong>Node
+          Type Generator</strong></span></a>
+        </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.binary_node_gen.expressions"></a><a class="link" href="binary_node_gen.html#tree_node.reference.binary_node_gen.expressions" title="Expression Semantics">Expression
+        Semantics</a>
+</h4></div></div></div>
+<p>
+          Let <code class="computeroutput"><span class="identifier">T</span></code> be the user data
+          type.
+        </p>
+<pre class="programlisting"><span class="keyword">typedef</span> boost::mpl::apply_wrap1<span class="special"><</span><span class="identifier">binary_node_gen</span><span class="special"><</span><span class="identifier">Size</span><span class="special">,</span><span class="identifier">AllocatorSelector</span><span class="special">>,</span><span class="identifier">T</span><span class="special">>::</span><span class="identifier">type</span>
+        <span class="identifier">r</span><span class="special">;</span>
+</pre>
+<p>
+          <span class="bold"><strong>Return type:</strong></span> <code class="literal"><a class="link" href="binary_node.html" title="binary_node<T,Size,AllocatorSelector>">tree_node::binary_node</a><T,Size,AllocatorSelector></code>
+        </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.binary_node_gen.complexity"></a><a class="link" href="binary_node_gen.html#tree_node.reference.binary_node_gen.complexity" title="Complexity">Complexity</a>
+</h4></div></div></div>
+<p>
+          Compile time.
+        </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-2013 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="binary_node.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="binary_node_base.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/binary_upper_bound.html
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/binary_upper_bound.html	2013-07-07 14:52:52 EDT (Sun, 07 Jul 2013)	(r84977)
@@ -0,0 +1,68 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>binary_upper_bound()</title>
+<link rel="stylesheet" href="http://www.boost.org/doc/libs/release/doc/src/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.77.1">
+<link rel="home" href="../../index.html" title="Chapter 1. tree_node 0.5">
+<link rel="up" href="../reference.html" title="Reference">
+<link rel="prev" href="binary_lower_bound.html" title="binary_lower_bound()">
+<link rel="next" href="cartesian_sort.html" title="cartesian_sort()">
+</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="binary_lower_bound.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="cartesian_sort.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="tree_node.reference.binary_upper_bound"></a><a class="link" href="binary_upper_bound.html" title="binary_upper_bound()"><code class="computeroutput"><span class="identifier">binary_upper_bound</span><span class="special">()</span></code></a>
+</h3></div></div></div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.binary_upper_bound.synopsis"></a><a class="link" href="binary_upper_bound.html#tree_node.reference.binary_upper_bound.synopsis" title="Synopsis">Synopsis</a>
+</h4></div></div></div>
+<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">Value</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Compare</span><span class="special">></span>
+    <span class="identifier">NodePointer</span>
+        <span class="identifier">binary_upper_bound</span><span class="special">(</span>
+            <span class="identifier">NodePointer</span> <span class="identifier">node_ptr</span>
+          <span class="special">,</span> <span class="identifier">Value</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">value</span>
+          <span class="special">,</span> <span class="identifier">Compare</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">compare</span>
+        <span class="special">);</span>
+<span class="special">}}</span>  <span class="comment">// namespace boost::tree_node</span>
+</pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.binary_upper_bound.description"></a><a class="link" href="binary_upper_bound.html#tree_node.reference.binary_upper_bound.description" title="Description">Description</a>
+</h4></div></div></div>
+<p>
+          TODO.
+        </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.binary_upper_bound.definition"></a><a class="link" href="binary_upper_bound.html#tree_node.reference.binary_upper_bound.definition" title="Where defined">Where
+        defined</a>
+</h4></div></div></div>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span>boost/tree_node/algorithm/binary_upper_bound.hpp<span class="special">></span>
+</pre>
+</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-2013 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="binary_lower_bound.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="cartesian_sort.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/binode_assoc_container.html
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/binode_assoc_container.html	2013-07-07 14:52:52 EDT (Sun, 07 Jul 2013)	(r84977)
@@ -0,0 +1,1199 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>binode_associative_container< NodeGenerator , T1 , T2 , IsMultipleAssociative , CompareSelector , Balancer ></title>
+<link rel="stylesheet" href="http://www.boost.org/doc/libs/release/doc/src/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.77.1">
+<link rel="home" href="../../index.html" title="Chapter 1. tree_node 0.5">
+<link rel="up" href="../reference.html" title="Reference">
+<link rel="prev" href="binode_container.html" title="binode_container<NodeGenerator,T,Balancer>">
+<link rel="next" href="binode_set.html" title="binode_set<NodeGenerator,T,CompareSelector,Balancer>">
+</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="binode_container.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="binode_set.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="tree_node.reference.binode_assoc_container"></a><a class="link" href="binode_assoc_container.html" title="binode_associative_container< NodeGenerator , T1 , T2 , IsMultipleAssociative , CompareSelector , Balancer >"><code class="computeroutput"><span class="identifier">binode_associative_container</span><span class="special"><</span>
+      <span class="identifier">NodeGenerator</span> <span class="special">,</span>
+      <span class="identifier">T1</span> <span class="special">,</span> <span class="identifier">T2</span> <span class="special">,</span> <span class="identifier">IsMultipleAssociative</span>
+      <span class="special">,</span> <span class="identifier">CompareSelector</span>
+      <span class="special">,</span> <span class="identifier">Balancer</span>
+      <span class="special">></span></code> </a>
+</h3></div></div></div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.binode_assoc_container.description"></a><a class="link" href="binode_assoc_container.html#tree_node.reference.binode_assoc_container.description" title="Description">Description</a>
+</h4></div></div></div>
+<p>
+          TODO.
+        </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.binode_assoc_container.definition"></a><a class="link" href="binode_assoc_container.html#tree_node.reference.binode_assoc_container.definition" title="Where defined">Where
+        defined</a>
+</h4></div></div></div>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span>boost/tree_node/container/binode_associative.hpp<span class="special">></span>
+</pre>
+<p>
+          Forward-declared:
+        </p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span>boost/tree_node/container/binode_associative_fwd.hpp<span class="special">></span>
+</pre>
+<p>
+          To register under Boost.Typeof:
+        </p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span>boost/typeof/boost/tree_node/container/binode_associative.hpp<span class="special">></span>
+</pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.binode_assoc_container.tpl_param"></a><a class="link" href="binode_assoc_container.html#tree_node.reference.binode_assoc_container.tpl_param" title="Template Parameters">Template
+        Parameters</a>
+</h4></div></div></div>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+                  <p>
+                    Parameter
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Description
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Default
+                  </p>
+                </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">NodeGenerator</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    A <a class="link" href="../concepts/node_type_generator.html" title="Node Type Generator"><span class="bold"><strong>Node Type Generator</strong></span></a> that takes
+                    in the value type and returns a <a class="link" href="../concepts/binary_tree_node.html" title="Binary Tree Node"><span class="bold"><strong>Binary Tree Node</strong></span></a> model.
+                  </p>
+                </td>
+<td>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">T1</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    The key type.
+                  </p>
+                </td>
+<td>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">T2</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    The mapped type; ignored if <code class="computeroutput"><span class="keyword">void</span></code>.
+                  </p>
+                </td>
+<td>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">IsMultipleAssociative</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    A Boolean Integral Constant that
+                    determines whether this type will model the Multiple Sorted Associative Container
+                    concept or the Unique Sorted Associative Container
+                    concept.
+                  </p>
+                </td>
+<td>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">CompareSelector</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    A Unary Metafunction Class that
+                    takes in the value type and returns a Strict Weak Ordering model.
+                  </p>
+                </td>
+<td>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">Balancer</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    TODO.
+                  </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.binode_assoc_container.model_of"></a><a class="link" href="binode_assoc_container.html#tree_node.reference.binode_assoc_container.model_of" title="Model of">Model
+        of</a>
+</h4></div></div></div>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem"><p>
+              Simple Associative Container if <code class="computeroutput"><span class="identifier">T2</span></code> is <code class="computeroutput"><span class="keyword">void</span></code>,
+              Pair Associative Container otherwise
+            </p></li>
+<li class="listitem"><p>
+              Multiple Sorted Associative Container
+              if <code class="computeroutput"><span class="identifier">IsMultipleAssociative</span></code>
+              evaluates to boost::mpl::true_, Unique Sorted Associative Container
+              otherwise
+            </p></li>
+<li class="listitem"><p>
+              <a class="link" href="../concepts/indexable_container.html" title="Indexable Container"><span class="bold"><strong>Indexable
+              Container</strong></span></a> if the value associated with <a class="link" href="count_key.html" title="count_key"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">count_key</span></code></a> exists for the return
+              type of <code class="computeroutput"><span class="identifier">NodeGenerator</span></code>
+            </p></li>
+<li class="listitem"><p>
+              Default Constructible if <code class="computeroutput"><span class="identifier">T</span></code> is Default Constructible
+            </p></li>
+<li class="listitem"><p>
+              <a href="http://www.boost.org/libs/utility/CopyConstructible.html" target="_top"><span class="bold"><strong>Copy
+              Constructible</strong></span></a> if <code class="computeroutput"><span class="identifier">T</span></code>
+              is Copy Constructible
+            </p></li>
+<li class="listitem"><p>
+              Assignable
+              if <code class="computeroutput"><span class="identifier">T</span></code> is Copy Constructible and Movable
+            </p></li>
+<li class="listitem"><p>
+              Movable
+              if <code class="computeroutput"><span class="identifier">T</span></code> is Movable
+            </p></li>
+</ul></div>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.binode_assoc_container.members"></a><a class="link" href="binode_assoc_container.html#tree_node.reference.binode_assoc_container.members" title="Public Members">Public
+        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>
+                    Definition
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Where defined
+                  </p>
+                </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+                  <p>
+                    Key type
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">typedef</span> <span class="identifier">T1</span> <span class="identifier">key_type</span><span class="special">;</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Associative Container
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Value type
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">typedef</span> <span class="keyword">typename</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">if_</span><span class="special"><</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">is_void</span><span class="special"><</span><span class="identifier">T2</span><span class="special">></span>
+          <span class="special">,</span> <span class="identifier">T1</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">T1</span> <span class="keyword">const</span><span class="special">,</span><span class="identifier">T2</span><span class="special">></span>
+        <span class="special">>::</span><span class="identifier">type</span>
+        <span class="identifier">value_type</span><span class="special">;</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Associative Container
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Reference type
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">typedef</span> <span class="identifier">value_type</span><span class="special">&</span> <span class="identifier">reference</span><span class="special">;</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Container
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Reference-to-const type
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">typedef</span> <span class="identifier">value_type</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">const_reference</span><span class="special">;</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Container
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Pointer type
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">typedef</span> <span class="identifier">value_type</span><span class="special">*</span> <span class="identifier">pointer</span><span class="special">;</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Container
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Pointer-to-const type
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">typedef</span> <span class="identifier">value_type</span> <span class="keyword">const</span><span class="special">*</span> <span class="identifier">const_pointer</span><span class="special">;</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Container
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Node type
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">typedef</span> <span class="keyword">typename</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">apply_wrap1</span><span class="special"><</span>
+            <span class="identifier">NodeGenerator</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">mpl</span><span class="special">::</span><span class="identifier">if_</span><span class="special"><</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">is_void</span><span class="special"><</span><span class="identifier">T2</span><span class="special">></span>
+              <span class="special">,</span> <span class="identifier">T1</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">T1</span><span class="special">,</span><span class="identifier">T2</span><span class="special">></span>
+            <span class="special">>::</span><span class="identifier">type</span>
+        <span class="special">>::</span><span class="identifier">type</span>
+        <span class="identifier">node</span><span class="special">;</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">binode_associative_container</span></code>
+                  </p>
+                </td>
+</tr>
+</tbody>
+</table></div>
+<p>
+          Also, given:
+        </p>
+<pre class="programlisting"><span class="keyword">struct</span> <span class="identifier">simple_transform_function</span>
+<span class="special">{</span>
+    <span class="keyword">typedef</span> <span class="identifier">const_reference</span> <span class="identifier">const_result</span><span class="special">;</span>
+    <span class="keyword">typedef</span> <span class="identifier">const_reference</span> <span class="identifier">mutable_result</span><span class="special">;</span>
+    <span class="identifier">const_reference</span> <span class="keyword">operator</span><span class="special">()(</span><span class="identifier">node</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">n</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
+<span class="special">};</span>
+
+<span class="keyword">struct</span> <span class="identifier">pair_associative_transform_function</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">pair</span><span class="special"><</span><span class="identifier">T1</span> <span class="keyword">const</span><span class="special">&,</span><span class="identifier">T2</span> <span class="keyword">const</span><span class="special">&></span> <span class="identifier">const_result</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">pair</span><span class="special"><</span><span class="identifier">T1</span> <span class="keyword">const</span><span class="special">&,</span><span class="identifier">T2</span><span class="special">&></span> <span class="identifier">mutable_result</span><span class="special">;</span>
+    <span class="identifier">const_result</span> <span class="keyword">operator</span><span class="special">()(</span><span class="identifier">node</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">n</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
+    <span class="identifier">mutable_result</span> <span class="keyword">operator</span><span class="special">()(</span><span class="identifier">node</span><span class="special">&</span> <span class="identifier">n</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
+<span class="special">};</span>
+
+<span class="keyword">typedef</span> <span class="keyword">typename</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">if_</span><span class="special"><</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">is_void</span><span class="special"><</span><span class="identifier">T2</span><span class="special">></span>
+          <span class="special">,</span> <span class="identifier">simple_transform_function</span>
+          <span class="special">,</span> <span class="identifier">pair_associative_transform_function</span>
+        <span class="special">>::</span><span class="identifier">type</span>
+        <span class="identifier">transform_function</span><span class="special">;</span>
+</pre>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+                  <p>
+                    Name
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Definition
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Where defined
+                  </p>
+                </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+                  <p>
+                    Iterator type
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">typedef</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">transform_iterator</span><span class="special"><</span>
+            <span class="identifier">transform_function</span>
+          <span class="special">,</span> <span class="identifier">in_order_iterator</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">mpl</span><span class="special">::</span><span class="identifier">if_</span><span class="special"><</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">is_void</span><span class="special"><</span><span class="identifier">T2</span><span class="special">></span>
+                  <span class="special">,</span> <span class="identifier">node</span> <span class="keyword">const</span>
+                  <span class="special">,</span> <span class="identifier">node</span>
+                <span class="special">>::</span><span class="identifier">type</span>
+            <span class="special">></span>
+        <span class="special">></span>
+        <span class="identifier">iterator</span><span class="special">;</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Container
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Immutable iterator type
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">typedef</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">transform_iterator</span><span class="special"><</span>
+            <span class="identifier">transform_function</span>
+          <span class="special">,</span> <span class="identifier">in_order_iterator</span><span class="special"><</span><span class="identifier">node</span> <span class="keyword">const</span><span class="special">></span>
+        <span class="special">></span>
+        <span class="identifier">const_iterator</span><span class="special">;</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Container
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Reverse iterator type
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">typedef</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">transform_iterator</span><span class="special"><</span>
+            <span class="identifier">transform_function</span>
+          <span class="special">,</span> <span class="identifier">in_order_iterator</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">mpl</span><span class="special">::</span><span class="identifier">if_</span><span class="special"><</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">is_void</span><span class="special"><</span><span class="identifier">T2</span><span class="special">></span>
+                  <span class="special">,</span> <span class="identifier">node</span> <span class="keyword">const</span>
+                  <span class="special">,</span> <span class="identifier">node</span>
+                <span class="special">>::</span><span class="identifier">type</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">true_</span>
+            <span class="special">></span>
+        <span class="special">></span>
+        <span class="identifier">reverse_iterator</span><span class="special">;</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Reversible Container
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Immutable reverse iterator type
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">typedef</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">transform_iterator</span><span class="special"><</span>
+            <span class="identifier">transform_function</span>
+          <span class="special">,</span> <span class="identifier">in_order_iterator</span><span class="special"><</span><span class="identifier">node</span> <span class="keyword">const</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="special">></span>
+        <span class="identifier">const_reverse_iterator</span><span class="special">;</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Reversible Container
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Size type
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">typedef</span> <span class="keyword">typename</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">eval_if</span><span class="special"><</span>
+            <span class="identifier">result_of</span><span class="special">::</span><span class="identifier">has_key</span><span class="special"><</span><span class="identifier">node</span><span class="special">,</span><span class="identifier">count_key</span><span class="special">></span>
+          <span class="special">,</span> <span class="identifier">result_of</span><span class="special">::</span><span class="identifier">value_at_key</span><span class="special"><</span><span class="identifier">node</span><span class="special">,</span><span class="identifier">count_key</span><span class="special">></span>
+          <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">node</span><span class="special">::</span><span class="identifier">size_type</span>
+        <span class="special">>::</span><span class="identifier">type</span>
+        <span class="identifier">size_type</span><span class="special">;</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Container
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Key compare type
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">typedef</span> <span class="keyword">typename</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">apply_wrap1</span><span class="special"><</span>
+            <span class="identifier">CompareSelector</span>
+          <span class="special">,</span> <span class="identifier">key_type</span>
+        <span class="special">>::</span><span class="identifier">type</span>
+        <span class="identifier">key_compare</span><span class="special">;</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Associative Container
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Value compare type
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">class</span> <span class="identifier">value_compare</span>
+<span class="special">{</span>
+
+ <span class="keyword">public</span><span class="special">:</span>
+    <span class="keyword">typedef</span> <span class="keyword">bool</span> <span class="identifier">result_type</span><span class="special">;</span>
+
+    <span class="keyword">explicit</span> <span class="identifier">value_compare</span><span class="special">(</span><span class="identifier">key_compare</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">compare</span><span class="special">);</span>
+    <span class="identifier">result_type</span> <span class="keyword">operator</span><span class="special">()(</span><span class="identifier">const_reference</span><span class="special">,</span> <span class="identifier">const_reference</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
+    <span class="identifier">result_type</span> <span class="keyword">operator</span><span class="special">()(</span><span class="identifier">node</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">n</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">result_type</span> <span class="keyword">operator</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">node</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">n</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
+
+<span class="special">};</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Associative Container
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Allocator type
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">typedef</span> <span class="keyword">typename</span> <span class="identifier">node</span><span class="special">::</span><span class="identifier">traits</span><span class="special">::</span><span class="identifier">allocator</span> <span class="identifier">allocator_type</span><span class="special">;</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">binode_associative_container</span></code>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Default constructor
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">binode_associative_container</span><span class="special">();</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Default Constructible
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Constructor with allocator
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">explicit</span> <span class="identifier">binode_associative_container</span><span class="special">(</span><span class="identifier">allocator_type</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">allocator</span><span class="special">);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">binode_associative_container</span></code>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Copy constructor
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">binode_associative_container</span><span class="special">(</span>
+    <span class="identifier">binode_associative_container</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">copy</span>
+<span class="special">);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Copy Constructible
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Copy constructor with allocator
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">binode_associative_container</span><span class="special">(</span>
+    <span class="identifier">binode_associative_container</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">copy</span>
+  <span class="special">,</span> <span class="identifier">allocator_type</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">allocator</span>
+<span class="special">);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">binode_associative_container</span></code>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Move constructor
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">binode_associative_container</span><span class="special">(</span>
+    <span class="identifier">binode_associative_container</span><span class="special">&&</span> <span class="identifier">source</span>
+<span class="special">);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Movable
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Move constructor with allocator
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">binode_associative_container</span><span class="special">(</span>
+    <span class="identifier">binode_associative_container</span><span class="special">&&</span> <span class="identifier">source</span>
+  <span class="special">,</span> <span class="identifier">allocator_type</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">allocator</span>
+<span class="special">);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">binode_associative_container</span></code>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Copy assignment operator
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">binode_associative_container</span><span class="special">&</span>
+    <span class="keyword">operator</span><span class="special">=(</span><span class="identifier">binode_associative_container</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">copy</span><span class="special">);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Assignable
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Move assignment operator
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">binode_associative_container</span><span class="special">&</span>
+    <span class="keyword">operator</span><span class="special">=(</span><span class="identifier">binode_associative_container</span><span class="special">&&</span> <span class="identifier">source</span><span class="special">);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Movable
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Destructor
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="special">~</span><span class="identifier">binode_associative_container</span><span class="special">();</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">binode_associative_container</span></code>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Root node read-only access
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">typename</span> <span class="identifier">node</span><span class="special">::</span><span class="identifier">const_pointer</span> <span class="identifier">data</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">binode_associative_container</span></code>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Beginning of read-only range
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">const_iterator</span> <span class="identifier">cbegin</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+<span class="identifier">const_iterator</span> <span class="identifier">begin</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Container
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Beginning of range
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">iterator</span> <span class="identifier">begin</span><span class="special">();</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Container
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    End of read-only range
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">const_iterator</span> <span class="identifier">cend</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+<span class="identifier">const_iterator</span> <span class="identifier">end</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Container
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    End of range
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">iterator</span> <span class="identifier">end</span><span class="special">();</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Container
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Beginning of read-only reverse range
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">const_reverse_iterator</span> <span class="identifier">crbegin</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+<span class="identifier">const_reverse_iterator</span> <span class="identifier">rbegin</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Reversible Container
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Beginning of reverse range
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">reverse_iterator</span> <span class="identifier">rbegin</span><span class="special">();</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Reversible Container
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    End of read-only reverse range
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">const_reverse_iterator</span> <span class="identifier">crend</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+<span class="identifier">const_reverse_iterator</span> <span class="identifier">rend</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Reversible Container
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    End of reverse range
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">reverse_iterator</span> <span class="identifier">rend</span><span class="special">();</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Reversible Container
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Key-value read-only access
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">const_iterator</span> <span class="identifier">find</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>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Associative Container
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Key-value access
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">iterator</span> <span class="identifier">find</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>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Associative Container
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Beginning of key-value range read-only access
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">const_iterator</span> <span class="identifier">lower_bound</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>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Sorted Associative Container
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Beginning of key-value range access
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">iterator</span> <span class="identifier">lower_bound</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>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Sorted Associative Container
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    End of key-value range read-only access
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">const_iterator</span> <span class="identifier">upper_bound</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>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Sorted Associative Container
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    End of key-value range access
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">iterator</span> <span class="identifier">upper_bound</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>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Sorted Associative Container
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Key-value range read-only access
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><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_iterator</span><span class="special">,</span><span class="identifier">const_iterator</span><span class="special">></span>
+    <span class="identifier">equal_range</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>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Associative Container
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Key-value range access
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><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">iterator</span><span class="special">,</span><span class="identifier">iterator</span><span class="special">></span> <span class="identifier">equal_range</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>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Associative Container
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Key-value insertion
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">typename</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">if_</span><span class="special"><</span>
+    <span class="identifier">IsMultipleAssociative</span>
+  <span class="special">,</span> <span class="identifier">iterator</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">iterator</span><span class="special">,</span><span class="keyword">bool</span><span class="special">></span>
+<span class="special">>::</span><span class="identifier">type</span>
+    <span class="identifier">insert</span><span class="special">(</span><span class="identifier">value_type</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">value</span><span class="special">);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Associative Container
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Key-value emplacement
+                  </p>
+                </td>
+<td>
+<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="special">...</span><span class="identifier">Args</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">mpl</span><span class="special">::</span><span class="identifier">if_</span><span class="special"><</span>
+    <span class="identifier">IsMultipleAssociative</span>
+  <span class="special">,</span> <span class="identifier">iterator</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">iterator</span><span class="special">,</span><span class="keyword">bool</span><span class="special">></span>
+<span class="special">>::</span><span class="identifier">type</span>
+    <span class="identifier">emplace</span><span class="special">(</span><span class="identifier">Args</span><span class="special">&&</span> <span class="special">...</span><span class="identifier">args</span><span class="special">);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Associative Container
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Key erasure
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">size_type</span> <span class="identifier">erase</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>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Associative Container
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Empty container query
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">bool</span> <span class="identifier">empty</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Container
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Remove all elements
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">void</span> <span class="identifier">clear</span><span class="special">();</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Associative Container
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Size query
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">size_type</span> <span class="identifier">size</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Container
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Element read-only access
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">typename</span> <span class="identifier">transform_function</span><span class="special">::</span><span class="identifier">const_result</span>
+    <span class="keyword">operator</span><span class="special">[](</span><span class="identifier">size_type</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">index</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <a class="link" href="../concepts/indexable_container.html" title="Indexable Container"><span class="bold"><strong>Indexable Container</strong></span></a>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Element access
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">typename</span> <span class="identifier">transform_function</span><span class="special">::</span><span class="identifier">mutable_result</span>
+    <span class="keyword">operator</span><span class="special">[](</span><span class="identifier">size_type</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">index</span><span class="special">);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <a class="link" href="../concepts/indexable_container.html" title="Indexable Container"><span class="bold"><strong>Indexable Container</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.binode_assoc_container.test"></a><a class="link" href="binode_assoc_container.html#tree_node.reference.binode_assoc_container.test" title="Test">Test</a>
+</h4></div></div></div>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem"><p>
+              <test/binode_set.cpp>
+            </p></li>
+<li class="listitem"><p>
+              <test/binode_map.cpp>
+            </p></li>
+</ul></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-2013 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="binode_container.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="binode_set.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/binode_container.html
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/binode_container.html	2013-07-07 14:52:52 EDT (Sun, 07 Jul 2013)	(r84977)
@@ -0,0 +1,1053 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>binode_container<NodeGenerator,T,Balancer></title>
+<link rel="stylesheet" href="http://www.boost.org/doc/libs/release/doc/src/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.77.1">
+<link rel="home" href="../../index.html" title="Chapter 1. tree_node 0.5">
+<link rel="up" href="../reference.html" title="Reference">
+<link rel="prev" href="../reference.html" title="Reference">
+<link rel="next" href="binode_assoc_container.html" title="binode_associative_container< NodeGenerator , T1 , T2 , IsMultipleAssociative , CompareSelector , Balancer >">
+</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="http://www.boost.org/doc/libs/release/doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="binode_assoc_container.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="tree_node.reference.binode_container"></a><a class="link" href="binode_container.html" title="binode_container<NodeGenerator,T,Balancer>"><code class="computeroutput"><span class="identifier">binode_container</span><span class="special"><</span><span class="identifier">NodeGenerator</span><span class="special">,</span><span class="identifier">T</span><span class="special">,</span><span class="identifier">Balancer</span><span class="special">></span></code></a>
+</h3></div></div></div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.binode_container.description"></a><a class="link" href="binode_container.html#tree_node.reference.binode_container.description" title="Description">Description</a>
+</h4></div></div></div>
+<p>
+          TODO.
+        </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.binode_container.definition"></a><a class="link" href="binode_container.html#tree_node.reference.binode_container.definition" title="Where defined">Where
+        defined</a>
+</h4></div></div></div>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span>boost/tree_node/container/binode.hpp<span class="special">></span>
+</pre>
+<p>
+          Forward-declared:
+        </p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span>boost/tree_node/container/binode_fwd.hpp<span class="special">></span>
+</pre>
+<p>
+          To register under Boost.Typeof:
+        </p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span>boost/typeof/boost/tree_node/container/binode.hpp<span class="special">></span>
+</pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.binode_container.tpl_param"></a><a class="link" href="binode_container.html#tree_node.reference.binode_container.tpl_param" title="Template Parameters">Template
+        Parameters</a>
+</h4></div></div></div>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+                  <p>
+                    Parameter
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Description
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Default
+                  </p>
+                </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">NodeGenerator</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    A <a class="link" href="../concepts/node_type_generator.html" title="Node Type Generator"><span class="bold"><strong>Node Type Generator</strong></span></a> that takes
+                    in the value type and returns a <a class="link" href="../concepts/binary_tree_node.html" title="Binary Tree Node"><span class="bold"><strong>Binary Tree Node</strong></span></a> model.
+                  </p>
+                </td>
+<td>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">T</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    The value type.
+                  </p>
+                </td>
+<td>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">Balancer</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    TODO.
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <a class="link" href="red_black_balancer.html" title="red_black_balancer"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">red_black_balancer</span></code></a>
+                  </p>
+                </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.binode_container.model_of"></a><a class="link" href="binode_container.html#tree_node.reference.binode_container.model_of" title="Model of">Model
+        of</a>
+</h4></div></div></div>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem"><p>
+              Front Insertion Sequence
+            </p></li>
+<li class="listitem"><p>
+              Back Insertion Sequence
+            </p></li>
+<li class="listitem"><p>
+              <a class="link" href="../concepts/indexable_container.html" title="Indexable Container"><span class="bold"><strong>Indexable
+              Container</strong></span></a> if the value associated with <a class="link" href="count_key.html" title="count_key"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">count_key</span></code></a> exists for the return
+              type of <code class="computeroutput"><span class="identifier">NodeGenerator</span></code>
+            </p></li>
+<li class="listitem"><p>
+              Default Constructible if <code class="computeroutput"><span class="identifier">T</span></code> is Default Constructible
+            </p></li>
+<li class="listitem"><p>
+              <a href="http://www.boost.org/libs/utility/CopyConstructible.html" target="_top"><span class="bold"><strong>Copy
+              Constructible</strong></span></a> if <code class="computeroutput"><span class="identifier">T</span></code>
+              is Copy Constructible
+            </p></li>
+<li class="listitem"><p>
+              Assignable
+              if <code class="computeroutput"><span class="identifier">T</span></code> is Copy Constructible and Movable
+            </p></li>
+<li class="listitem"><p>
+              Movable
+              if <code class="computeroutput"><span class="identifier">T</span></code> is Movable
+            </p></li>
+</ul></div>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.binode_container.members"></a><a class="link" href="binode_container.html#tree_node.reference.binode_container.members" title="Public Members">Public
+        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>
+                    Definition
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Where defined
+                  </p>
+                </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+                  <p>
+                    Value type
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">typedef</span> <span class="identifier">T</span> <span class="identifier">value_type</span><span class="special">;</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Container
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Reference type
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">typedef</span> <span class="identifier">value_type</span><span class="special">&</span> <span class="identifier">reference</span><span class="special">;</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Container
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Reference-to-const type
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">typedef</span> <span class="identifier">value_type</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">const_reference</span><span class="special">;</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Container
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Pointer type
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">typedef</span> <span class="identifier">value_type</span><span class="special">*</span> <span class="identifier">pointer</span><span class="special">;</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Container
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Pointer-to-const type
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">typedef</span> <span class="identifier">value_type</span> <span class="keyword">const</span><span class="special">*</span> <span class="identifier">const_pointer</span><span class="special">;</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Container
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Node type
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">typedef</span> <span class="keyword">typename</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">apply_wrap1</span><span class="special"><</span>
+            <span class="identifier">NodeGenerator</span>
+          <span class="special">,</span> <span class="identifier">value_type</span>
+        <span class="special">>::</span><span class="identifier">type</span>
+        <span class="identifier">node</span><span class="special">;</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">binode_container</span></code>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Iterator type
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">typedef</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">transform_iterator</span><span class="special"><</span>
+            <span class="identifier">at_key</span><span class="special"><</span><span class="identifier">data_key</span><span class="special">></span>
+          <span class="special">,</span> <span class="identifier">in_order_iterator</span><span class="special"><</span><span class="identifier">node</span><span class="special">></span>
+        <span class="special">></span>
+        <span class="identifier">iterator</span><span class="special">;</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Container
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Immutable iterator type
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">typedef</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">transform_iterator</span><span class="special"><</span>
+            <span class="identifier">at_key</span><span class="special"><</span><span class="identifier">data_key</span><span class="special">></span>
+          <span class="special">,</span> <span class="identifier">in_order_iterator</span><span class="special"><</span><span class="identifier">node</span> <span class="keyword">const</span><span class="special">></span>
+        <span class="special">></span>
+        <span class="identifier">const_iterator</span><span class="special">;</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Container
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Reverse iterator type
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">typedef</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">transform_iterator</span><span class="special"><</span>
+            <span class="identifier">at_key</span><span class="special"><</span><span class="identifier">data_key</span><span class="special">></span>
+          <span class="special">,</span> <span class="identifier">in_order_iterator</span><span class="special"><</span><span class="identifier">node</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="special">></span>
+        <span class="identifier">reverse_iterator</span><span class="special">;</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Reversible Container
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Immutable reverse iterator type
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">typedef</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">transform_iterator</span><span class="special"><</span>
+            <span class="identifier">at_key</span><span class="special"><</span><span class="identifier">data_key</span><span class="special">></span>
+          <span class="special">,</span> <span class="identifier">in_order_iterator</span><span class="special"><</span><span class="identifier">node</span> <span class="keyword">const</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="special">></span>
+        <span class="identifier">const_reverse_iterator</span><span class="special">;</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Reversible Container
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Size type
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">typedef</span> <span class="keyword">typename</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">eval_if</span><span class="special"><</span>
+            <span class="identifier">result_of</span><span class="special">::</span><span class="identifier">has_key</span><span class="special"><</span><span class="identifier">node</span><span class="special">,</span><span class="identifier">count_key</span><span class="special">></span>
+          <span class="special">,</span> <span class="identifier">result_of</span><span class="special">::</span><span class="identifier">value_at_key</span><span class="special"><</span><span class="identifier">node</span><span class="special">,</span><span class="identifier">count_key</span><span class="special">></span>
+          <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">node</span><span class="special">::</span><span class="identifier">size_type</span>
+        <span class="special">>::</span><span class="identifier">type</span>
+        <span class="identifier">size_type</span><span class="special">;</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Container
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Allocator type
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">typedef</span> <span class="keyword">typename</span> <span class="identifier">node</span><span class="special">::</span><span class="identifier">traits</span><span class="special">::</span><span class="identifier">allocator</span> <span class="identifier">allocator_type</span><span class="special">;</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">binode_container</span></code>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Default constructor
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">binode_container</span><span class="special">();</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Default Constructible
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Constructor with allocator
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">explicit</span> <span class="identifier">binode_container</span><span class="special">(</span><span class="identifier">allocator_type</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">allocator</span><span class="special">);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">binode_container</span></code>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Copy constructor
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">binode_container</span><span class="special">(</span><span class="identifier">binode_container</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">copy</span><span class="special">);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Copy Constructible
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Copy constructor with allocator
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">binode_container</span><span class="special">(</span>
+    <span class="identifier">binode_container</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">copy</span>
+  <span class="special">,</span> <span class="identifier">allocator_type</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">allocator</span>
+<span class="special">);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">binode_container</span></code>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Move constructor
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">binode_container</span><span class="special">(</span><span class="identifier">binode_container</span><span class="special">&&</span> <span class="identifier">source</span><span class="special">);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Movable
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Move constructor with allocator
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">binode_container</span><span class="special">(</span>
+    <span class="identifier">binode_container</span><span class="special">&&</span> <span class="identifier">source</span>
+  <span class="special">,</span> <span class="identifier">allocator_type</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">allocator</span>
+<span class="special">);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">binode_container</span></code>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Copy assignment operator
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">binode_container</span><span class="special">&</span> <span class="keyword">operator</span><span class="special">=(</span><span class="identifier">binode_container</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">copy</span><span class="special">);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Assignable
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Move assignment operator
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">binode_container</span><span class="special">&</span> <span class="keyword">operator</span><span class="special">=(</span><span class="identifier">binode_container</span><span class="special">&&</span> <span class="identifier">source</span><span class="special">);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Movable
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Destructor
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="special">~</span><span class="identifier">binode_container</span><span class="special">();</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">binode_container</span></code>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Root node read-only access
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">typename</span> <span class="identifier">node</span><span class="special">::</span><span class="identifier">const_pointer</span> <span class="identifier">data</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">binode_container</span></code>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Root node access
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">typename</span> <span class="identifier">node</span><span class="special">::</span><span class="identifier">pointer</span> <span class="identifier">data</span><span class="special">();</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">binode_container</span></code>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Beginning of read-only range
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">const_iterator</span> <span class="identifier">cbegin</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+<span class="identifier">const_iterator</span> <span class="identifier">begin</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Container
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Beginning of range
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">iterator</span> <span class="identifier">begin</span><span class="special">();</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Container
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    End of read-only range
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">const_iterator</span> <span class="identifier">cend</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+<span class="identifier">const_iterator</span> <span class="identifier">end</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Container
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    End of range
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">iterator</span> <span class="identifier">end</span><span class="special">();</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Container
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Beginning of read-only reverse range
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">const_reverse_iterator</span> <span class="identifier">crbegin</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+<span class="identifier">const_reverse_iterator</span> <span class="identifier">rbegin</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Reversible Container
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Beginning of reverse range
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">reverse_iterator</span> <span class="identifier">rbegin</span><span class="special">();</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Reversible Container
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    End of read-only reverse range
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">const_reverse_iterator</span> <span class="identifier">crend</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+<span class="identifier">const_reverse_iterator</span> <span class="identifier">rend</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Reversible Container
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    End of reverse range
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">reverse_iterator</span> <span class="identifier">rend</span><span class="special">();</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Reversible Container
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Back read-only access
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">const_reference</span> <span class="identifier">back</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Sequence
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Back access
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">reference</span> <span class="identifier">back</span><span class="special">();</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Sequence
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Back insertion
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">void</span> <span class="identifier">push_back</span><span class="special">(</span><span class="identifier">const_reference</span> <span class="identifier">t</span><span class="special">);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Back Insertion Sequence
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Back emplacement
+                  </p>
+                </td>
+<td>
+<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="special">...</span><span class="identifier">Args</span><span class="special">></span>
+<span class="keyword">void</span> <span class="identifier">emplace_back</span><span class="special">(</span><span class="identifier">Args</span><span class="special">&&</span> <span class="special">...</span><span class="identifier">args</span><span class="special">);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Back Insertion Sequence
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Back removal
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">void</span> <span class="identifier">pop_back</span><span class="special">();</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Back Insertion Sequence
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Front read-only access
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">const_reference</span> <span class="identifier">front</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Sequence
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Front access
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">reference</span> <span class="identifier">front</span><span class="special">();</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Sequence
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Front insertion
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">void</span> <span class="identifier">push_front</span><span class="special">(</span><span class="identifier">const_reference</span> <span class="identifier">t</span><span class="special">);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Front Insertion Sequence
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Front emplacement
+                  </p>
+                </td>
+<td>
+<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="special">...</span><span class="identifier">Args</span><span class="special">></span>
+<span class="keyword">void</span> <span class="identifier">emplace_front</span><span class="special">(</span><span class="identifier">Args</span><span class="special">&&</span> <span class="special">...</span><span class="identifier">args</span><span class="special">);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Front Insertion Sequence
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Front removal
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">void</span> <span class="identifier">pop_front</span><span class="special">();</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Front Insertion Sequence
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Insertion
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">iterator</span> <span class="identifier">insert</span><span class="special">(</span><span class="identifier">const_iterator</span> <span class="identifier">itr</span><span class="special">,</span> <span class="identifier">const_reference</span> <span class="identifier">t</span><span class="special">);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Sequence
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Emplacement
+                  </p>
+                </td>
+<td>
+<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="special">...</span><span class="identifier">Args</span><span class="special">></span>
+<span class="identifier">iterator</span> <span class="identifier">emplace</span><span class="special">(</span><span class="identifier">const_iterator</span> <span class="identifier">itr</span><span class="special">,</span> <span class="identifier">Args</span><span class="special">&&</span> <span class="special">...</span><span class="identifier">args</span><span class="special">);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Sequence
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Erasure
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">iterator</span> <span class="identifier">erase</span><span class="special">(</span><span class="identifier">const_iterator</span> <span class="identifier">p</span><span class="special">);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Sequence
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Range erasure
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">void</span> <span class="identifier">erase</span><span class="special">(</span><span class="identifier">const_iterator</span> <span class="identifier">itr</span><span class="special">,</span> <span class="identifier">const_iterator</span> <span class="identifier">itr_end</span><span class="special">);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Sequence
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Empty container query
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">bool</span> <span class="identifier">empty</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Container
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Remove all elements
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">void</span> <span class="identifier">clear</span><span class="special">();</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Sequence
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Size query
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">size_type</span> <span class="identifier">size</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Container
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Element read-only access
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">const_reference</span> <span class="keyword">operator</span><span class="special">[](</span><span class="identifier">size_type</span> <span class="identifier">index</span><span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <a class="link" href="../concepts/indexable_container.html" title="Indexable Container"><span class="bold"><strong>Indexable Container</strong></span></a>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Element access
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">reference</span> <span class="keyword">operator</span><span class="special">[](</span><span class="identifier">size_type</span> <span class="identifier">index</span><span class="special">);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <a class="link" href="../concepts/indexable_container.html" title="Indexable Container"><span class="bold"><strong>Indexable Container</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.binode_container.test"></a><a class="link" href="binode_container.html#tree_node.reference.binode_container.test" title="Test">Test</a>
+</h4></div></div></div>
+<p>
+          <test/binode_container.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-2013 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="http://www.boost.org/doc/libs/release/doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="binode_assoc_container.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/binode_map.html
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/binode_map.html	2013-07-07 14:52:52 EDT (Sun, 07 Jul 2013)	(r84977)
@@ -0,0 +1,413 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>binode_map<NodeGenerator,Key,Mapped,CompareSelector,Balancer></title>
+<link rel="stylesheet" href="http://www.boost.org/doc/libs/release/doc/src/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.77.1">
+<link rel="home" href="../../index.html" title="Chapter 1. tree_node 0.5">
+<link rel="up" href="../reference.html" title="Reference">
+<link rel="prev" href="binode_multiset.html" title="binode_multiset<NodeGenerator,T,CompareSelector,Balancer>">
+<link rel="next" href="binode_multimap.html" title="binode_multimap<NodeGenerator,Key,Mapped,CompareSelector,Balancer>">
+</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="binode_multiset.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="binode_multimap.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="tree_node.reference.binode_map"></a><a class="link" href="binode_map.html" title="binode_map<NodeGenerator,Key,Mapped,CompareSelector,Balancer>"><code class="computeroutput"><span class="identifier">binode_map</span><span class="special"><</span><span class="identifier">NodeGenerator</span><span class="special">,</span><span class="identifier">Key</span><span class="special">,</span><span class="identifier">Mapped</span><span class="special">,</span><span class="identifier">CompareSelector</span><span class="special">,</span><span class="identifier">Balancer</span><span class="special">></span></code> </a>
+</h3></div></div></div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.binode_map.description"></a><a class="link" href="binode_map.html#tree_node.reference.binode_map.description" title="Description">Description</a>
+</h4></div></div></div>
+<p>
+          TODO.
+        </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.binode_map.definition"></a><a class="link" href="binode_map.html#tree_node.reference.binode_map.definition" title="Where defined">Where defined</a>
+</h4></div></div></div>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span>boost/tree_node/container/binode_associative.hpp<span class="special">></span>
+</pre>
+<p>
+          Forward-declared:
+        </p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span>boost/tree_node/container/binode_associative_fwd.hpp<span class="special">></span>
+</pre>
+<p>
+          To register under Boost.Typeof:
+        </p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span>boost/typeof/boost/tree_node/container/binode_associative.hpp<span class="special">></span>
+</pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.binode_map.tpl_param"></a><a class="link" href="binode_map.html#tree_node.reference.binode_map.tpl_param" title="Template Parameters">Template
+        Parameters</a>
+</h4></div></div></div>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+                  <p>
+                    Parameter
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Description
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Default
+                  </p>
+                </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">NodeGenerator</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    A <a class="link" href="../concepts/node_type_generator.html" title="Node Type Generator"><span class="bold"><strong>Node Type Generator</strong></span></a> that takes
+                    in the value type and returns a <a class="link" href="../concepts/binary_tree_node.html" title="Binary Tree Node"><span class="bold"><strong>Binary Tree Node</strong></span></a> model.
+                  </p>
+                </td>
+<td>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">Key</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    The key type.
+                  </p>
+                </td>
+<td>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">Mapped</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    The mapped type.
+                  </p>
+                </td>
+<td>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">CompareSelector</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    A Unary Metafunction Class that
+                    takes in the value type and returns a Strict Weak Ordering model.
+                  </p>
+                </td>
+<td>
+                  <p>
+                    boost::less_than_selector
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">Balancer</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    TODO.
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <a class="link" href="red_black_balancer.html" title="red_black_balancer"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">red_black_balancer</span></code></a>
+                  </p>
+                </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.binode_map.model_of"></a><a class="link" href="binode_map.html#tree_node.reference.binode_map.model_of" title="Model of">Model of</a>
+</h4></div></div></div>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem"><p>
+              Pair Associative Container
+            </p></li>
+<li class="listitem"><p>
+              Unique Sorted Associative Container
+            </p></li>
+<li class="listitem"><p>
+              <a class="link" href="../concepts/indexable_container.html" title="Indexable Container"><span class="bold"><strong>Indexable
+              Container</strong></span></a> if the value associated with <a class="link" href="count_key.html" title="count_key"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">count_key</span></code></a> exists for the return
+              type of <code class="computeroutput"><span class="identifier">NodeGenerator</span></code>
+            </p></li>
+<li class="listitem"><p>
+              Default Constructible if <code class="computeroutput"><span class="identifier">T</span></code> is Default Constructible
+            </p></li>
+<li class="listitem"><p>
+              <a href="http://www.boost.org/libs/utility/CopyConstructible.html" target="_top"><span class="bold"><strong>Copy
+              Constructible</strong></span></a> if <code class="computeroutput"><span class="identifier">T</span></code>
+              is Copy Constructible
+            </p></li>
+<li class="listitem"><p>
+              Assignable
+              if <code class="computeroutput"><span class="identifier">T</span></code> is Copy Constructible and Movable
+            </p></li>
+<li class="listitem"><p>
+              Movable
+              if <code class="computeroutput"><span class="identifier">T</span></code> is Movable
+            </p></li>
+</ul></div>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.binode_map.public_bases"></a><a class="link" href="binode_map.html#tree_node.reference.binode_map.public_bases" title="Public Base Classes">Public
+        Base Classes</a>
+</h4></div></div></div>
+<pre class="programlisting"><span class="identifier">binode_associative_container</span><span class="special"><</span>
+    <span class="identifier">NodeGenerator</span>
+  <span class="special">,</span> <span class="identifier">Key</span>
+  <span class="special">,</span> <span class="identifier">Mapped</span>
+  <span class="special">,</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">false_</span>
+  <span class="special">,</span> <span class="identifier">CompareSelector</span>
+  <span class="special">,</span> <span class="identifier">Balancer</span>
+<span class="special">></span>
+</pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.binode_map.members"></a><a class="link" href="binode_map.html#tree_node.reference.binode_map.members" title="Public Members">Public Members</a>
+</h4></div></div></div>
+<p>
+          In addition to those inherited from <a class="link" href="binode_assoc_container.html" title="binode_associative_container< NodeGenerator , T1 , T2 , IsMultipleAssociative , CompareSelector , Balancer >"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">binode_associative_container</span></code></a>,
+          the following members are defined:
+        </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+                  <p>
+                    Name
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Definition
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Where defined
+                  </p>
+                </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+                  <p>
+                    Mapped type
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">typedef</span> <span class="identifier">Mapped</span> <span class="identifier">mapped_type</span><span class="special">;</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Pair Associative Container
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Default constructor
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">binode_map</span><span class="special">();</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Default Constructible
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Constructor with allocator
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">explicit</span> <span class="identifier">binode_map</span><span class="special">(</span><span class="identifier">allocator_type</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">allocator</span><span class="special">);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">binode_map</span></code>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Copy constructor
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">binode_map</span><span class="special">(</span><span class="identifier">binode_map</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">copy</span><span class="special">);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Copy Constructible
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Copy constructor with allocator
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">binode_map</span><span class="special">(</span>
+    <span class="identifier">binode_map</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">copy</span>
+  <span class="special">,</span> <span class="identifier">allocator_type</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">allocator</span>
+<span class="special">);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">binode_map</span></code>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Move constructor
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">binode_map</span><span class="special">(</span><span class="identifier">binode_map</span><span class="special">&&</span> <span class="identifier">source</span><span class="special">);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Movable
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Move constructor with allocator
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">binode_map</span><span class="special">(</span>
+    <span class="identifier">binode_map</span><span class="special">&&</span> <span class="identifier">source</span>
+  <span class="special">,</span> <span class="identifier">allocator_type</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">allocator</span>
+<span class="special">);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">binode_map</span></code>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Copy assignment operator
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">binode_map</span><span class="special">&</span> <span class="keyword">operator</span><span class="special">=(</span><span class="identifier">binode_map</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">copy</span><span class="special">);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Assignable
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Move assignment operator
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">binode_map</span><span class="special">&</span> <span class="keyword">operator</span><span class="special">=(</span><span class="identifier">binode_map</span><span class="special">&&</span> <span class="identifier">source</span><span class="special">);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Movable
+                  </p>
+                </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.binode_map.test"></a><a class="link" href="binode_map.html#tree_node.reference.binode_map.test" title="Test">Test</a>
+</h4></div></div></div>
+<p>
+          <test/binode_map.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-2013 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="binode_multiset.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="binode_multimap.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/binode_multimap.html
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/binode_multimap.html	2013-07-07 14:52:52 EDT (Sun, 07 Jul 2013)	(r84977)
@@ -0,0 +1,416 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>binode_multimap<NodeGenerator,Key,Mapped,CompareSelector,Balancer></title>
+<link rel="stylesheet" href="http://www.boost.org/doc/libs/release/doc/src/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.77.1">
+<link rel="home" href="../../index.html" title="Chapter 1. tree_node 0.5">
+<link rel="up" href="../reference.html" title="Reference">
+<link rel="prev" href="binode_map.html" title="binode_map<NodeGenerator,Key,Mapped,CompareSelector,Balancer>">
+<link rel="next" href="null_balancer.html" title="null_balancer">
+</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="binode_map.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="null_balancer.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="tree_node.reference.binode_multimap"></a><a class="link" href="binode_multimap.html" title="binode_multimap<NodeGenerator,Key,Mapped,CompareSelector,Balancer>"><code class="computeroutput"><span class="identifier">binode_multimap</span><span class="special"><</span><span class="identifier">NodeGenerator</span><span class="special">,</span><span class="identifier">Key</span><span class="special">,</span><span class="identifier">Mapped</span><span class="special">,</span><span class="identifier">CompareSelector</span><span class="special">,</span><span class="identifier">Balancer</span><span class="special">></span></code> </a>
+</h3></div></div></div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.binode_multimap.description"></a><a class="link" href="binode_multimap.html#tree_node.reference.binode_multimap.description" title="Description">Description</a>
+</h4></div></div></div>
+<p>
+          TODO.
+        </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.binode_multimap.definition"></a><a class="link" href="binode_multimap.html#tree_node.reference.binode_multimap.definition" title="Where defined">Where
+        defined</a>
+</h4></div></div></div>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span>boost/tree_node/container/binode_associative.hpp<span class="special">></span>
+</pre>
+<p>
+          Forward-declared:
+        </p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span>boost/tree_node/container/binode_associative_fwd.hpp<span class="special">></span>
+</pre>
+<p>
+          To register under Boost.Typeof:
+        </p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span>boost/typeof/boost/tree_node/container/binode_associative.hpp<span class="special">></span>
+</pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.binode_multimap.tpl_param"></a><a class="link" href="binode_multimap.html#tree_node.reference.binode_multimap.tpl_param" title="Template Parameters">Template
+        Parameters</a>
+</h4></div></div></div>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+                  <p>
+                    Parameter
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Description
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Default
+                  </p>
+                </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">NodeGenerator</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    A <a class="link" href="../concepts/node_type_generator.html" title="Node Type Generator"><span class="bold"><strong>Node Type Generator</strong></span></a> that takes
+                    in the value type and returns a <a class="link" href="../concepts/binary_tree_node.html" title="Binary Tree Node"><span class="bold"><strong>Binary Tree Node</strong></span></a> model.
+                  </p>
+                </td>
+<td>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">Key</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    The key type.
+                  </p>
+                </td>
+<td>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">Mapped</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    The mapped type.
+                  </p>
+                </td>
+<td>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">CompareSelector</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    A Unary Metafunction Class that
+                    takes in the value type and returns a Strict Weak Ordering model.
+                  </p>
+                </td>
+<td>
+                  <p>
+                    boost::less_than_selector
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">Balancer</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    TODO.
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <a class="link" href="red_black_balancer.html" title="red_black_balancer"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">red_black_balancer</span></code></a>
+                  </p>
+                </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.binode_multimap.model_of"></a><a class="link" href="binode_multimap.html#tree_node.reference.binode_multimap.model_of" title="Model of">Model
+        of</a>
+</h4></div></div></div>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem"><p>
+              Pair Associative Container
+            </p></li>
+<li class="listitem"><p>
+              Multiple Sorted Associative Container
+            </p></li>
+<li class="listitem"><p>
+              <a class="link" href="../concepts/indexable_container.html" title="Indexable Container"><span class="bold"><strong>Indexable
+              Container</strong></span></a> if the value associated with <a class="link" href="count_key.html" title="count_key"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">count_key</span></code></a> exists for the return
+              type of <code class="computeroutput"><span class="identifier">NodeGenerator</span></code>
+            </p></li>
+<li class="listitem"><p>
+              Default Constructible if <code class="computeroutput"><span class="identifier">T</span></code> is Default Constructible
+            </p></li>
+<li class="listitem"><p>
+              <a href="http://www.boost.org/libs/utility/CopyConstructible.html" target="_top"><span class="bold"><strong>Copy
+              Constructible</strong></span></a> if <code class="computeroutput"><span class="identifier">T</span></code>
+              is Copy Constructible
+            </p></li>
+<li class="listitem"><p>
+              Assignable
+              if <code class="computeroutput"><span class="identifier">T</span></code> is Copy Constructible and Movable
+            </p></li>
+<li class="listitem"><p>
+              Movable
+              if <code class="computeroutput"><span class="identifier">T</span></code> is Movable
+            </p></li>
+</ul></div>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.binode_multimap.public_bases"></a><a class="link" href="binode_multimap.html#tree_node.reference.binode_multimap.public_bases" title="Public Base Classes">Public
+        Base Classes</a>
+</h4></div></div></div>
+<pre class="programlisting"><span class="identifier">binode_associative_container</span><span class="special"><</span>
+    <span class="identifier">NodeGenerator</span>
+  <span class="special">,</span> <span class="identifier">Key</span>
+  <span class="special">,</span> <span class="identifier">Mapped</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">true_</span>
+  <span class="special">,</span> <span class="identifier">CompareSelector</span>
+  <span class="special">,</span> <span class="identifier">Balancer</span>
+<span class="special">></span>
+</pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.binode_multimap.members"></a><a class="link" href="binode_multimap.html#tree_node.reference.binode_multimap.members" title="Public Members">Public
+        Members</a>
+</h4></div></div></div>
+<p>
+          In addition to those inherited from <a class="link" href="binode_assoc_container.html" title="binode_associative_container< NodeGenerator , T1 , T2 , IsMultipleAssociative , CompareSelector , Balancer >"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">binode_associative_container</span></code></a>,
+          the following members are defined:
+        </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+                  <p>
+                    Name
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Definition
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Where defined
+                  </p>
+                </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+                  <p>
+                    Mapped type
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">typedef</span> <span class="identifier">Mapped</span> <span class="identifier">mapped_type</span><span class="special">;</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Pair Associative Container
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Default constructor
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">binode_multimap</span><span class="special">();</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Default Constructible
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Constructor with allocator
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">explicit</span> <span class="identifier">binode_multimap</span><span class="special">(</span><span class="identifier">allocator_type</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">allocator</span><span class="special">);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">binode_map</span></code>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Copy constructor
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">binode_multimap</span><span class="special">(</span><span class="identifier">binode_multimap</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">copy</span><span class="special">);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Copy Constructible
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Copy constructor with allocator
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">binode_multimap</span><span class="special">(</span>
+    <span class="identifier">binode_multimap</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">copy</span>
+  <span class="special">,</span> <span class="identifier">allocator_type</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">allocator</span>
+<span class="special">);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">binode_multimap</span></code>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Move constructor
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">binode_multimap</span><span class="special">(</span><span class="identifier">binode_multimap</span><span class="special">&&</span> <span class="identifier">source</span><span class="special">);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Movable
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Move constructor with allocator
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">binode_multimap</span><span class="special">(</span>
+    <span class="identifier">binode_multimap</span><span class="special">&&</span> <span class="identifier">source</span>
+  <span class="special">,</span> <span class="identifier">allocator_type</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">allocator</span>
+<span class="special">);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">binode_multimap</span></code>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Copy assignment operator
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">binode_multimap</span><span class="special">&</span> <span class="keyword">operator</span><span class="special">=(</span><span class="identifier">binode_multimap</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">copy</span><span class="special">);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Assignable
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Move assignment operator
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">binode_multimap</span><span class="special">&</span> <span class="keyword">operator</span><span class="special">=(</span><span class="identifier">binode_multimap</span><span class="special">&&</span> <span class="identifier">source</span><span class="special">);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Movable
+                  </p>
+                </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.binode_multimap.test"></a><a class="link" href="binode_multimap.html#tree_node.reference.binode_multimap.test" title="Test">Test</a>
+</h4></div></div></div>
+<p>
+          <test/binode_map.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-2013 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="binode_map.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="null_balancer.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/binode_multiset.html
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/binode_multiset.html	2013-07-07 14:52:52 EDT (Sun, 07 Jul 2013)	(r84977)
@@ -0,0 +1,387 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>binode_multiset<NodeGenerator,T,CompareSelector,Balancer></title>
+<link rel="stylesheet" href="http://www.boost.org/doc/libs/release/doc/src/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.77.1">
+<link rel="home" href="../../index.html" title="Chapter 1. tree_node 0.5">
+<link rel="up" href="../reference.html" title="Reference">
+<link rel="prev" href="binode_set.html" title="binode_set<NodeGenerator,T,CompareSelector,Balancer>">
+<link rel="next" href="binode_map.html" title="binode_map<NodeGenerator,Key,Mapped,CompareSelector,Balancer>">
+</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="binode_set.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="binode_map.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="tree_node.reference.binode_multiset"></a><a class="link" href="binode_multiset.html" title="binode_multiset<NodeGenerator,T,CompareSelector,Balancer>"><code class="computeroutput"><span class="identifier">binode_multiset</span><span class="special"><</span><span class="identifier">NodeGenerator</span><span class="special">,</span><span class="identifier">T</span><span class="special">,</span><span class="identifier">CompareSelector</span><span class="special">,</span><span class="identifier">Balancer</span><span class="special">></span></code>
+      </a>
+</h3></div></div></div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.binode_multiset.description"></a><a class="link" href="binode_multiset.html#tree_node.reference.binode_multiset.description" title="Description">Description</a>
+</h4></div></div></div>
+<p>
+          TODO.
+        </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.binode_multiset.definition"></a><a class="link" href="binode_multiset.html#tree_node.reference.binode_multiset.definition" title="Where defined">Where
+        defined</a>
+</h4></div></div></div>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span>boost/tree_node/container/binode_associative.hpp<span class="special">></span>
+</pre>
+<p>
+          Forward-declared:
+        </p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span>boost/tree_node/container/binode_associative_fwd.hpp<span class="special">></span>
+</pre>
+<p>
+          To register under Boost.Typeof:
+        </p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span>boost/typeof/boost/tree_node/container/binode_associative.hpp<span class="special">></span>
+</pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.binode_multiset.tpl_param"></a><a class="link" href="binode_multiset.html#tree_node.reference.binode_multiset.tpl_param" title="Template Parameters">Template
+        Parameters</a>
+</h4></div></div></div>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+                  <p>
+                    Parameter
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Description
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Default
+                  </p>
+                </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">NodeGenerator</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    A <a class="link" href="../concepts/node_type_generator.html" title="Node Type Generator"><span class="bold"><strong>Node Type Generator</strong></span></a> that takes
+                    in the value type and returns a <a class="link" href="../concepts/binary_tree_node.html" title="Binary Tree Node"><span class="bold"><strong>Binary Tree Node</strong></span></a> model.
+                  </p>
+                </td>
+<td>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">T</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    The key type, also the value type.
+                  </p>
+                </td>
+<td>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">CompareSelector</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    A Unary Metafunction Class that
+                    takes in the value type and returns a Strict Weak Ordering model.
+                  </p>
+                </td>
+<td>
+                  <p>
+                    boost::less_than_selector
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">Balancer</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    TODO.
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <a class="link" href="red_black_balancer.html" title="red_black_balancer"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">red_black_balancer</span></code></a>
+                  </p>
+                </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.binode_multiset.model_of"></a><a class="link" href="binode_multiset.html#tree_node.reference.binode_multiset.model_of" title="Model of">Model
+        of</a>
+</h4></div></div></div>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem"><p>
+              Simple Associative Container
+            </p></li>
+<li class="listitem"><p>
+              Multiple Sorted Associative Container
+            </p></li>
+<li class="listitem"><p>
+              <a class="link" href="../concepts/indexable_container.html" title="Indexable Container"><span class="bold"><strong>Indexable
+              Container</strong></span></a> if the value associated with <a class="link" href="count_key.html" title="count_key"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">count_key</span></code></a> exists for the return
+              type of <code class="computeroutput"><span class="identifier">NodeGenerator</span></code>
+            </p></li>
+<li class="listitem"><p>
+              Default Constructible if <code class="computeroutput"><span class="identifier">T</span></code> is Default Constructible
+            </p></li>
+<li class="listitem"><p>
+              <a href="http://www.boost.org/libs/utility/CopyConstructible.html" target="_top"><span class="bold"><strong>Copy
+              Constructible</strong></span></a> if <code class="computeroutput"><span class="identifier">T</span></code>
+              is Copy Constructible
+            </p></li>
+<li class="listitem"><p>
+              Assignable
+              if <code class="computeroutput"><span class="identifier">T</span></code> is Copy Constructible and Movable
+            </p></li>
+<li class="listitem"><p>
+              Movable
+              if <code class="computeroutput"><span class="identifier">T</span></code> is Movable
+            </p></li>
+</ul></div>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.binode_multiset.public_bases"></a><a class="link" href="binode_multiset.html#tree_node.reference.binode_multiset.public_bases" title="Public Base Classes">Public
+        Base Classes</a>
+</h4></div></div></div>
+<pre class="programlisting"><span class="identifier">binode_associative_container</span><span class="special"><</span>
+    <span class="identifier">NodeGenerator</span>
+  <span class="special">,</span> <span class="identifier">T</span>
+  <span class="special">,</span> <span class="keyword">void</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">true_</span>
+  <span class="special">,</span> <span class="identifier">CompareSelector</span>
+  <span class="special">,</span> <span class="identifier">Balancer</span>
+<span class="special">></span>
+</pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.binode_multiset.members"></a><a class="link" href="binode_multiset.html#tree_node.reference.binode_multiset.members" title="Public Members">Public
+        Members</a>
+</h4></div></div></div>
+<p>
+          In addition to those inherited from <a class="link" href="binode_assoc_container.html" title="binode_associative_container< NodeGenerator , T1 , T2 , IsMultipleAssociative , CompareSelector , Balancer >"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">binode_associative_container</span></code></a>,
+          the following members are defined:
+        </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+                  <p>
+                    Name
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Definition
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Where defined
+                  </p>
+                </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+                  <p>
+                    Default constructor
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">binode_multiset</span><span class="special">();</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Default Constructible
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Constructor with allocator
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">explicit</span> <span class="identifier">binode_multiset</span><span class="special">(</span><span class="identifier">allocator_type</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">allocator</span><span class="special">);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">binode_multiset</span></code>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Copy constructor
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">binode_multiset</span><span class="special">(</span><span class="identifier">binode_multiset</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">copy</span><span class="special">);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Copy Constructible
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Copy constructor with allocator
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">binode_multiset</span><span class="special">(</span>
+    <span class="identifier">binode_multiset</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">copy</span>
+  <span class="special">,</span> <span class="identifier">allocator_type</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">allocator</span>
+<span class="special">);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">binode_multiset</span></code>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Move constructor
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">binode_multiset</span><span class="special">(</span><span class="identifier">binode_multiset</span><span class="special">&&</span> <span class="identifier">source</span><span class="special">);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Movable
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Move constructor with allocator
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">binode_multiset</span><span class="special">(</span>
+    <span class="identifier">binode_multiset</span><span class="special">&&</span> <span class="identifier">source</span>
+  <span class="special">,</span> <span class="identifier">allocator_type</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">allocator</span>
+<span class="special">);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">binode_multiset</span></code>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Copy assignment operator
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">binode_multiset</span><span class="special">&</span> <span class="keyword">operator</span><span class="special">=(</span><span class="identifier">binode_multiset</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">copy</span><span class="special">);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Assignable
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Move assignment operator
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">binode_multiset</span><span class="special">&</span> <span class="keyword">operator</span><span class="special">=(</span><span class="identifier">binode_multiset</span><span class="special">&&</span> <span class="identifier">source</span><span class="special">);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Movable
+                  </p>
+                </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.binode_multiset.test"></a><a class="link" href="binode_multiset.html#tree_node.reference.binode_multiset.test" title="Test">Test</a>
+</h4></div></div></div>
+<p>
+          <test/binode_set.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-2013 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="binode_set.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="binode_map.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/binode_set.html
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/binode_set.html	2013-07-07 14:52:52 EDT (Sun, 07 Jul 2013)	(r84977)
@@ -0,0 +1,383 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>binode_set<NodeGenerator,T,CompareSelector,Balancer></title>
+<link rel="stylesheet" href="http://www.boost.org/doc/libs/release/doc/src/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.77.1">
+<link rel="home" href="../../index.html" title="Chapter 1. tree_node 0.5">
+<link rel="up" href="../reference.html" title="Reference">
+<link rel="prev" href="binode_assoc_container.html" title="binode_associative_container< NodeGenerator , T1 , T2 , IsMultipleAssociative , CompareSelector , Balancer >">
+<link rel="next" href="binode_multiset.html" title="binode_multiset<NodeGenerator,T,CompareSelector,Balancer>">
+</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="binode_assoc_container.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="binode_multiset.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="tree_node.reference.binode_set"></a><a class="link" href="binode_set.html" title="binode_set<NodeGenerator,T,CompareSelector,Balancer>"><code class="computeroutput"><span class="identifier">binode_set</span><span class="special"><</span><span class="identifier">NodeGenerator</span><span class="special">,</span><span class="identifier">T</span><span class="special">,</span><span class="identifier">CompareSelector</span><span class="special">,</span><span class="identifier">Balancer</span><span class="special">></span></code></a>
+</h3></div></div></div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.binode_set.description"></a><a class="link" href="binode_set.html#tree_node.reference.binode_set.description" title="Description">Description</a>
+</h4></div></div></div>
+<p>
+          TODO.
+        </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.binode_set.definition"></a><a class="link" href="binode_set.html#tree_node.reference.binode_set.definition" title="Where defined">Where defined</a>
+</h4></div></div></div>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span>boost/tree_node/container/binode_associative.hpp<span class="special">></span>
+</pre>
+<p>
+          Forward-declared:
+        </p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span>boost/tree_node/container/binode_associative_fwd.hpp<span class="special">></span>
+</pre>
+<p>
+          To register under Boost.Typeof:
+        </p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span>boost/typeof/boost/tree_node/container/binode_associative.hpp<span class="special">></span>
+</pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.binode_set.tpl_param"></a><a class="link" href="binode_set.html#tree_node.reference.binode_set.tpl_param" title="Template Parameters">Template
+        Parameters</a>
+</h4></div></div></div>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+                  <p>
+                    Parameter
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Description
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Default
+                  </p>
+                </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">NodeGenerator</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    A <a class="link" href="../concepts/node_type_generator.html" title="Node Type Generator"><span class="bold"><strong>Node Type Generator</strong></span></a> that takes
+                    in the value type and returns a <a class="link" href="../concepts/binary_tree_node.html" title="Binary Tree Node"><span class="bold"><strong>Binary Tree Node</strong></span></a> model.
+                  </p>
+                </td>
+<td>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">T</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    The key type, also the value type.
+                  </p>
+                </td>
+<td>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">CompareSelector</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    A Unary Metafunction Class that
+                    takes in the value type and returns a Strict Weak Ordering model.
+                  </p>
+                </td>
+<td>
+                  <p>
+                    boost::less_than_selector
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">Balancer</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    TODO.
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <a class="link" href="red_black_balancer.html" title="red_black_balancer"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">red_black_balancer</span></code></a>
+                  </p>
+                </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.binode_set.model_of"></a><a class="link" href="binode_set.html#tree_node.reference.binode_set.model_of" title="Model of">Model of</a>
+</h4></div></div></div>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem"><p>
+              Simple Associative Container
+            </p></li>
+<li class="listitem"><p>
+              Unique Sorted Associative Container
+            </p></li>
+<li class="listitem"><p>
+              <a class="link" href="../concepts/indexable_container.html" title="Indexable Container"><span class="bold"><strong>Indexable
+              Container</strong></span></a> if the value associated with <a class="link" href="count_key.html" title="count_key"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">count_key</span></code></a> exists for the return
+              type of <code class="computeroutput"><span class="identifier">NodeGenerator</span></code>
+            </p></li>
+<li class="listitem"><p>
+              Default Constructible if <code class="computeroutput"><span class="identifier">T</span></code> is Default Constructible
+            </p></li>
+<li class="listitem"><p>
+              <a href="http://www.boost.org/libs/utility/CopyConstructible.html" target="_top"><span class="bold"><strong>Copy
+              Constructible</strong></span></a> if <code class="computeroutput"><span class="identifier">T</span></code>
+              is Copy Constructible
+            </p></li>
+<li class="listitem"><p>
+              Assignable
+              if <code class="computeroutput"><span class="identifier">T</span></code> is Copy Constructible and Movable
+            </p></li>
+<li class="listitem"><p>
+              Movable
+              if <code class="computeroutput"><span class="identifier">T</span></code> is Movable
+            </p></li>
+</ul></div>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.binode_set.public_bases"></a><a class="link" href="binode_set.html#tree_node.reference.binode_set.public_bases" title="Public Base Classes">Public
+        Base Classes</a>
+</h4></div></div></div>
+<pre class="programlisting"><span class="identifier">binode_associative_container</span><span class="special"><</span>
+    <span class="identifier">NodeGenerator</span>
+  <span class="special">,</span> <span class="identifier">T</span>
+  <span class="special">,</span> <span class="keyword">void</span>
+  <span class="special">,</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">false_</span>
+  <span class="special">,</span> <span class="identifier">CompareSelector</span>
+  <span class="special">,</span> <span class="identifier">Balancer</span>
+<span class="special">></span>
+</pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.binode_set.members"></a><a class="link" href="binode_set.html#tree_node.reference.binode_set.members" title="Public Members">Public Members</a>
+</h4></div></div></div>
+<p>
+          In addition to those inherited from <a class="link" href="binode_assoc_container.html" title="binode_associative_container< NodeGenerator , T1 , T2 , IsMultipleAssociative , CompareSelector , Balancer >"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">binode_associative_container</span></code></a>,
+          the following members are defined:
+        </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+                  <p>
+                    Name
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Definition
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Where defined
+                  </p>
+                </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+                  <p>
+                    Default constructor
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">binode_set</span><span class="special">();</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Default Constructible
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Constructor with allocator
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">explicit</span> <span class="identifier">binode_set</span><span class="special">(</span><span class="identifier">allocator_type</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">allocator</span><span class="special">);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">binode_set</span></code>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Copy constructor
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">binode_set</span><span class="special">(</span><span class="identifier">binode_set</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">copy</span><span class="special">);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Copy Constructible
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Copy constructor with allocator
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">binode_set</span><span class="special">(</span>
+    <span class="identifier">binode_set</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">copy</span>
+  <span class="special">,</span> <span class="identifier">allocator_type</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">allocator</span>
+<span class="special">);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">binode_set</span></code>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Move constructor
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">binode_set</span><span class="special">(</span><span class="identifier">binode_set</span><span class="special">&&</span> <span class="identifier">source</span><span class="special">);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Movable
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Move constructor with allocator
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">binode_set</span><span class="special">(</span>
+    <span class="identifier">binode_set</span><span class="special">&&</span> <span class="identifier">source</span>
+  <span class="special">,</span> <span class="identifier">allocator_type</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">allocator</span>
+<span class="special">);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">binode_set</span></code>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Copy assignment operator
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">binode_set</span><span class="special">&</span> <span class="keyword">operator</span><span class="special">=(</span><span class="identifier">binode_set</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">copy</span><span class="special">);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Assignable
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Move assignment operator
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">binode_set</span><span class="special">&</span> <span class="keyword">operator</span><span class="special">=(</span><span class="identifier">binode_set</span><span class="special">&&</span> <span class="identifier">source</span><span class="special">);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Movable
+                  </p>
+                </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.binode_set.test"></a><a class="link" href="binode_set.html#tree_node.reference.binode_set.test" title="Test">Test</a>
+</h4></div></div></div>
+<p>
+          <test/binode_set.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-2013 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="binode_assoc_container.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="binode_multiset.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/breadth_first_desc_iter.html
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/breadth_first_desc_iter.html	2013-07-07 14:52:52 EDT (Sun, 07 Jul 2013)	(r84977)
@@ -0,0 +1,840 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>breadth_first_descendant_iterator<Node,Selector></title>
+<link rel="stylesheet" href="http://www.boost.org/doc/libs/release/doc/src/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.77.1">
+<link rel="home" href="../../index.html" title="Chapter 1. tree_node 0.5">
+<link rel="up" href="../reference.html" title="Reference">
+<link rel="prev" href="breadth_first_iterator.html" title="breadth_first_iterator<Node,Selector>">
+<link rel="next" href="pre_order_iterator.html" title="pre_order_iterator<Node,IsReverse>">
+</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="http://www.boost.org/doc/libs/release/doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="pre_order_iterator.html"><img src="http://www.boost.org/doc/libs/release/doc/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_desc_iter"></a><a class="link" href="breadth_first_desc_iter.html" title="breadth_first_descendant_iterator<Node,Selector>"><code class="computeroutput"><span class="identifier">breadth_first_descendant_iterator</span><span class="special"><</span><span class="identifier">Node</span><span class="special">,</span><span class="identifier">Selector</span><span class="special">></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_desc_iter.synopsis"></a><a class="link" href="breadth_first_desc_iter.html#tree_node.reference.breadth_first_desc_iter.synopsis" title="Synopsis">Synopsis</a>
+</h4></div></div></div>
+<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">Node</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Selector</span> <span class="special">=</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">dequeS</span><span class="special">></span>
+    <span class="keyword">class</span> <span class="identifier">breadth_first_descendant_iterator</span>
+      <span class="special">:</span> <span class="keyword">public</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">iterator_adaptor</span><span class="special"><</span>
+            <span class="identifier">breadth_first_descendant_iterator</span><span class="special"><</span><span class="identifier">Node</span><span class="special">,</span><span class="identifier">Selector</span><span class="special">></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">mpl</span><span class="special">::</span><span class="identifier">if_</span><span class="special"><</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">is_const</span><span class="special"><</span><span class="identifier">Node</span><span class="special">></span>
+              <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Node</span><span class="special">::</span><span class="identifier">const_iterator</span>
+              <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Node</span><span class="special">::</span><span class="identifier">iterator</span>
+            <span class="special">>::</span><span class="identifier">type</span>
+          <span class="special">,</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">use_default</span>
+          <span class="special">,</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">forward_traversal_tag</span>
+        <span class="special">></span>
+    <span class="special">{</span>
+        <span class="keyword">struct</span> <span class="identifier">enabler</span>
+        <span class="special">{</span>
+        <span class="special">};</span>
+
+     <span class="keyword">public</span><span class="special">:</span>
+        <span class="identifier">breadth_first_descendant_iterator</span><span class="special">();</span>
+
+        <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">Compare</span><span class="special">></span>
+        <span class="keyword">explicit</span> <span class="identifier">breadth_first_descendant_iterator</span><span class="special">(</span><span class="identifier">Compare</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">compare</span><span class="special">);</span>
+
+        <span class="keyword">explicit</span> <span class="identifier">breadth_first_descendant_iterator</span><span class="special">(</span><span class="identifier">Node</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">Compare</span><span class="special">></span>
+        <span class="identifier">breadth_first_descendant_iterator</span><span class="special">(</span><span class="identifier">Node</span><span class="special">&</span> <span class="identifier">node</span><span class="special">,</span> <span class="identifier">Compare</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">compare</span><span class="special">);</span>
+
+        <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">N</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">S</span><span class="special">></span>
+        <span class="identifier">breadth_first_descendant_iterator</span><span class="special">(</span>
+            <span class="identifier">breadth_first_descendant_iterator</span><span class="special"><</span><span class="identifier">N</span><span class="special">,</span><span class="identifier">S</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="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="keyword">typename</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">eval_if</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">mpl</span><span class="special">::</span><span class="identifier">if_</span><span class="special"><</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">is_same</span><span class="special"><</span><span class="identifier">S</span><span class="special">,</span><span class="identifier">Selector</span><span class="special">></span>
+                      <span class="special">,</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">is_convertible</span><span class="special"><</span><span class="identifier">N</span><span class="special">,</span><span class="identifier">Node</span><span class="special">></span>
+                      <span class="special">,</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">false_</span>
+                    <span class="special">>::</span><span class="identifier">type</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">eval_if</span><span class="special"><</span>
+                        <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_heap_selector</span><span class="special"><</span><span class="identifier">Selector</span><span class="special">></span>
+                      <span class="special">,</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">false_</span>
+                      <span class="special">,</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">if_</span><span class="special"><</span>
+                            <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_std_heap_selector</span><span class="special"><</span><span class="identifier">Selector</span><span class="special">></span>
+                          <span class="special">,</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">false_</span>
+                          <span class="special">,</span> <span class="special">::</span><span class="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="special">></span>
+                  <span class="special">,</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">false_</span>
+                <span class="special">>::</span><span class="identifier">type</span>
+              <span class="special">,</span> <span class="identifier">enabler</span>
+            <span class="special">>::</span><span class="identifier">type</span> <span class="special">=</span> <span class="identifier">enabler</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">N</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">S</span><span class="special">></span>
+        <span class="identifier">breadth_first_descendant_iterator</span><span class="special">(</span>
+            <span class="identifier">breadth_first_descendant_iterator</span><span class="special"><</span><span class="identifier">N</span><span class="special">,</span><span class="identifier">S</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="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="keyword">typename</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">eval_if</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">mpl</span><span class="special">::</span><span class="identifier">if_</span><span class="special"><</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">is_same</span><span class="special"><</span><span class="identifier">S</span><span class="special">,</span><span class="identifier">Selector</span><span class="special">></span>
+                      <span class="special">,</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">is_convertible</span><span class="special"><</span><span class="identifier">N</span><span class="special">,</span><span class="identifier">Node</span><span class="special">></span>
+                      <span class="special">,</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">false_</span>
+                    <span class="special">>::</span><span class="identifier">type</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">if_</span><span class="special"><</span>
+                        <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_heap_selector</span><span class="special"><</span><span class="identifier">Selector</span><span class="special">></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">true_</span>
+                      <span class="special">,</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_std_heap_selector</span><span class="special"><</span><span class="identifier">Selector</span><span class="special">></span>
+                    <span class="special">></span>
+                  <span class="special">,</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">false_</span>
+                <span class="special">>::</span><span class="identifier">type</span>
+              <span class="special">,</span> <span class="identifier">enabler</span>
+            <span class="special">>::</span><span class="identifier">type</span> <span class="special">=</span> <span class="identifier">enabler</span><span class="special">()</span>
+        <span class="special">);</span>
+
+        <span class="keyword">operator</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">tree_node</span><span class="special">::</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>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.breadth_first_desc_iter.description"></a><a class="link" href="breadth_first_desc_iter.html#tree_node.reference.breadth_first_desc_iter.description" title="Description">Description</a>
+</h4></div></div></div>
+<p>
+          This iterator traverses the descendants of the root node passed to its
+          constructor in breadth-first fashion: e.g. given the following tree representation:
+        </p>
+<pre class="programlisting">      <span class="identifier">D</span>
+      <span class="special">|</span>
+  <span class="identifier">E</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">A</span>   <span class="identifier">F</span>   <span class="identifier">C</span>   <span class="identifier">G</span>
+</pre>
+<p>
+          By default, this iterator will traverse the tree nodes in the following
+          order:
+        </p>
+<pre class="programlisting"><span class="identifier">E</span> <span class="identifier">B</span> <span class="identifier">A</span> <span class="identifier">F</span> <span class="identifier">C</span> <span class="identifier">G</span>
+</pre>
+<p>
+          However, if the <code class="computeroutput"><span class="identifier">Selector</span></code>
+          template argument causes the buffer to sort its elements according to a
+          particular ordering, then the iterator traversal will take this ordering
+          into account as well as the ply of the nodes. In this example, if the buffer
+          prioritizes lower ASCII values over higher ones, then this iterator will
+          traverse the tree nodes in the following order:
+        </p>
+<pre class="programlisting"><span class="identifier">B</span> <span class="identifier">C</span> <span class="identifier">E</span> <span class="identifier">A</span> <span class="identifier">F</span> <span class="identifier">G</span>
+</pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.breadth_first_desc_iter.definition"></a><a class="link" href="breadth_first_desc_iter.html#tree_node.reference.breadth_first_desc_iter.definition" title="Where defined">Where
+        defined</a>
+</h4></div></div></div>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span>boost/tree_node/iterator/breadth_first_descendant.hpp<span class="special">></span>
+</pre>
+<p>
+          To register under Boost.Typeof:
+        </p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span>boost/typeof/boost/tree_node/iterator/breadth_first_descendant.hpp<span class="special">></span>
+</pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.breadth_first_desc_iter.tpl_param"></a><a class="link" href="breadth_first_desc_iter.html#tree_node.reference.breadth_first_desc_iter.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">Node</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    The type of a tree node.
+                  </p>
+                </td>
+<td>
+                  <p>
+                    It must model the <a class="link" href="../concepts/tree_node.html" title="Tree Node"><span class="bold"><strong>Tree Node</strong></span></a> concept, but it can be
+                    <code class="computeroutput"><span class="keyword">const</span></code>-qualified.
+                  </p>
+                </td>
+<td>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">Selector</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    The type that determines the buffer used to enforce breadth-first
+                    order.
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Either <code class="literal">boost::container_gen<Selector>::type</code>
+                    must evaluate to a double-ended Sequence, or <code class="literal">boost::is_std_heap_selector<Selector></code>
+                    or <code class="literal">boost::is_heap_selector<Selector></code>
+                    must evaluate to boost::mpl::true_.
+                  </p>
+                </td>
+<td>
+                  <p>
+                    boost::dequeS
+                  </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_desc_iter.model_of"></a><a class="link" href="breadth_first_desc_iter.html#tree_node.reference.breadth_first_desc_iter.model_of" title="Model of">Model
+        of</a>
+</h4></div></div></div>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem"><p>
+              <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>
+            </p></li>
+<li class="listitem"><p>
+              Default Constructible
+            </p></li>
+<li class="listitem"><p>
+              <a href="http://www.boost.org/libs/utility/CopyConstructible.html" target="_top"><span class="bold"><strong>Copy
+              Constructible</strong></span></a>
+            </p></li>
+<li class="listitem"><p>
+              Assignable
+            </p></li>
+</ul></div>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.breadth_first_desc_iter.members"></a><a class="link" href="breadth_first_desc_iter.html#tree_node.reference.breadth_first_desc_iter.members" title="Members">Members</a>
+</h4></div></div></div>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+                  <p>
+                    Name
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Expression
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Description
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Type requirements
+                  </p>
+                </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+                  <p>
+                    Value type
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">typedef</span> <span class="special">...</span> <span class="identifier">value_type</span><span class="special">;</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Defined by the <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> concept.
+                  </p>
+                </td>
+<td>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Reference type
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">typedef</span> <span class="special">...</span> <span class="identifier">reference</span><span class="special">;</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Defined by the Forward Iterator concept.
+                  </p>
+                </td>
+<td>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Pointer type
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">typedef</span> <span class="special">...</span> <span class="identifier">pointer</span><span class="special">;</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Defined by the Forward Iterator concept.
+                  </p>
+                </td>
+<td>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Distance type
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">typedef</span> <span class="special">...</span> <span class="identifier">difference_type</span><span class="special">;</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Defined by the Forward Iterator concept.
+                  </p>
+                </td>
+<td>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Iterator category
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">typedef</span> <span class="special">...</span> <span class="identifier">iterator_category</span><span class="special">;</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Defined by the Forward Iterator concept.
+                  </p>
+                </td>
+<td>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Default constructor
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">breadth_first_descendant_iterator</span><span class="special">();</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Sets this iterator past-the-end. Required by the Default Constructible concept.
+                  </p>
+                </td>
+<td>
+                  <p>
+                    The buffer type as determined by <code class="computeroutput"><span class="identifier">Selector</span></code>
+                    must also model the Default Constructible concept.
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Constructor with comparator
+                  </p>
+                </td>
+<td>
+<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">Compare</span><span class="special">></span>
+<span class="keyword">explicit</span> <span class="identifier">breadth_first_descendant_iterator</span><span class="special">(</span><span class="identifier">Compare</span> <span class="keyword">const</span><span class="special">&);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Sets this iterator past-the-end, and constructs the underlying
+                    buffer with the specified comparator.
+                  </p>
+                </td>
+<td>
+                  <p>
+                    The underlying buffer must be constructible using the specified
+                    comparator.
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Constructor from node
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">explicit</span> <span class="identifier">breadth_first_descendant_iterator</span><span class="special">(</span><span class="identifier">Node</span><span class="special">&);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Defined by the <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> concept.
+                  </p>
+                </td>
+<td>
+                  <p>
+                    The buffer type as determined by <code class="computeroutput"><span class="identifier">Selector</span></code>
+                    must model the Default Constructible concept.
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Constructor from node with comparator
+                  </p>
+                </td>
+<td>
+<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">Compare</span><span class="special">></span>
+<span class="identifier">breadth_first_descendant_iterator</span><span class="special">(</span><span class="identifier">Node</span><span class="special">&,</span> <span class="identifier">Compare</span> <span class="keyword">const</span><span class="special">&);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Sets this iterator to traverse the descendants of the specified
+                    node, and constructs the underlying buffer with the specified
+                    comparator.
+                  </p>
+                </td>
+<td>
+                  <p>
+                    The underlying buffer must be constructible using the specified
+                    comparator.
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Conversion constructor
+                  </p>
+                </td>
+<td>
+<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">N</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">S</span><span class="special">></span>
+<span class="identifier">breadth_first_descendant_iterator</span><span class="special">(</span>
+    <span class="identifier">breadth_first_descendant_iterator</span><span class="special"><</span><span class="identifier">N</span><span class="special">,</span><span class="identifier">S</span><span class="special">></span> <span class="keyword">const</span><span class="special">&</span>
+<span class="special">);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Constructs this iterator as a copy of the specified one so that
+                    the current node is of type <code class="computeroutput"><span class="identifier">Node</span></code>.
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Both <code class="literal">std::tr1::is_convertible<N,Node></code>
+                    and <code class="literal">std::tr1::is_same<S,Selector></code>
+                    must evaluate to std::tr1::true_type.
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Copy constructor
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">breadth_first_descendant_iterator</span><span class="special">(</span>
+    <span class="identifier">breadth_first_descendant_iterator</span> <span class="keyword">const</span><span class="special">&</span>
+<span class="special">);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Defined by the Copy Constructible concept.
+                  </p>
+                </td>
+<td>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Assignment operator
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">breadth_first_descendant_iterator</span><span class="special">&</span>
+    <span class="keyword">operator</span><span class="special">=(</span><span class="identifier">breadth_first_descendant_iterator</span> <span class="keyword">const</span><span class="special">&);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Defined by the Assignable concept.
+                  </p>
+                </td>
+<td>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Dereference operator
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">reference</span> <span class="keyword">operator</span><span class="special">*()</span> <span class="keyword">const</span><span class="special">;</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    If the <code class="computeroutput"><span class="identifier">Node</span></code> type
+                    models 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,
+                    returns an object whose <code class="computeroutput"><span class="identifier">first</span></code>
+                    member refers to the key that is associated with the current
+                    node. If the <code class="computeroutput"><span class="identifier">Node</span></code>
+                    type models the <a class="link" href="../concepts/non_assoc_tree_node.html" title="Non-Associative Tree Node"><span class="bold"><strong>Non-Associative Tree Node</strong></span></a> concept,
+                    returns the current node. Required by the Forward Iterator concept.
+                  </p>
+                </td>
+<td>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Indirection operator
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">pointer</span> <span class="keyword">operator</span><span class="special">->()</span> <span class="keyword">const</span><span class="special">;</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    If the <code class="computeroutput"><span class="identifier">Node</span></code> type
+                    models 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,
+                    returns a pointer to the object whose <code class="computeroutput"><span class="identifier">first</span></code>
+                    member refers to the key associated with the current node. If
+                    the <code class="computeroutput"><span class="identifier">Node</span></code> type
+                    models the <a class="link" href="../concepts/non_assoc_tree_node.html" title="Non-Associative Tree Node"><span class="bold"><strong>Non-Associative Tree Node</strong></span></a> concept,
+                    returns a pointer to the current node. Required by the Forward Iterator concept.
+                  </p>
+                </td>
+<td>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Pre-increment operator
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">breadth_first_descendant_iterator</span><span class="special">&</span> <span class="keyword">operator</span><span class="special">++();</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Enqueues the children of the current node, then dequeues the
+                    next node and sets the invoking iterator to point to it. Returns
+                    the invoking iterator. Required by the Forward Iterator concept.
+                  </p>
+                </td>
+<td>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Post-increment operator
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">breadth_first_descendant_iterator</span> <span class="keyword">operator</span><span class="special">++(</span><span class="keyword">int</span><span class="special">);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Enqueues the children of the current node, then dequeues the
+                    next node and sets the invoking iterator to point to it. Returns
+                    a new iterator pointing to the (previous) current node. Required
+                    by the Forward Iterator concept.
+                  </p>
+                </td>
+<td>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Traversal state conversion operator
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">operator</span> <a class="link" href="traversal_state.html" title="traversal_state">tree_node::traversal_state</a><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Defined by 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>
+<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_desc_iter.non_members"></a><a class="link" href="breadth_first_desc_iter.html#tree_node.reference.breadth_first_desc_iter.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>
+                    Definition
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Description
+                  </p>
+                </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+                  <p>
+                    Iterator creation
+                  </p>
+                </td>
+<td>
+<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">Node</span><span class="special">></span>
+    <span class="identifier">breadth_first_descendant_iterator</span><span class="special"><</span><span class="identifier">Node</span><span class="special">,::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">dequeS</span><span class="special">></span>
+        <span class="identifier">make_breadth_first_descendant_iterator</span><span class="special">(</span><span class="identifier">Node</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>
+                </td>
+<td>
+                  <p>
+                    Constructs and returns a <code class="computeroutput"><span class="identifier">breadth_first_descendant_iterator</span></code>
+                    that will iterate through the descendants of the specified node.
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Iterator creation with selector
+                  </p>
+                </td>
+<td>
+<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">Selector</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Node</span><span class="special">></span>
+    <span class="identifier">breadth_first_descendant_iterator</span><span class="special"><</span><span class="identifier">Node</span><span class="special">,</span><span class="identifier">Selector</span><span class="special">></span>
+        <span class="identifier">make_breadth_first_descendant_iterator</span><span class="special">(</span><span class="identifier">Node</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>
+                </td>
+<td>
+                  <p>
+                    Constructs and returns a <code class="computeroutput"><span class="identifier">breadth_first_descendant_iterator</span></code>
+                    that will iterate through the descendants of the specified node.
+                    The <code class="computeroutput"><span class="identifier">Selector</span></code>
+                    type will determine the buffer used to enforce breadth-first
+                    order.
+                  </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_desc_iter.example"></a><a class="link" href="breadth_first_desc_iter.html#tree_node.reference.breadth_first_desc_iter.example" title="Example">Example</a>
+</h4></div></div></div>
+<p>
+          If a tree possess the property that the value associated with each non-root
+          node is greater than that associated with its parent, then a breadth-first
+          traversal that prioritizes lower-value nodes over higher-value ones will
+          output a sorted range. The <a class="link" href="cartesian_sort.html" title="cartesian_sort()"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">cartesian_sort</span><span class="special">()</span></code></a>
+          algorithm's implementation generates a tree that possesses this property.
+        </p>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">Iterator</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Compare</span><span class="special">></span>
+<span class="keyword">void</span>
+    <span class="identifier">cartesian_sort</span><span class="special">(</span>
+        <span class="identifier">Iterator</span> <span class="identifier">itr_begin</span>
+      <span class="special">,</span> <span class="identifier">Iterator</span> <span class="identifier">itr_end</span>
+      <span class="special">,</span> <span class="identifier">Compare</span> <span class="identifier">compare</span>
+    <span class="special">)</span>
+<span class="special">{</span>
+    <span class="keyword">if</span> <span class="special">(</span><span class="identifier">itr_begin</span> <span class="special">==</span> <span class="identifier">itr_end</span><span class="special">)</span> <span class="keyword">return</span><span class="special">;</span>
+
+    <span class="keyword">typedef</span> <span class="keyword">typename</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">iterator_value</span><span class="special"><</span><span class="identifier">Iterator</span><span class="special">>::</span><span class="identifier">type</span> <span class="identifier">Value</span><span class="special">;</span>
+    <span class="keyword">typedef</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">binary_node</span><span class="special"><</span><span class="identifier">Value</span><span class="special">></span> <span class="identifier">Node</span><span class="special">;</span>
+    <span class="keyword">typedef</span> <span class="keyword">typename</span> <span class="identifier">Node</span><span class="special">::</span><span class="identifier">traits</span><span class="special">::</span><span class="identifier">allocator</span> <span class="identifier">Alloc</span><span class="special">;</span>
+
+    <span class="identifier">Alloc</span> <span class="identifier">allocator</span><span class="special">;</span>
+    <span class="keyword">typename</span> <span class="identifier">Node</span><span class="special">::</span><span class="identifier">pointer</span> <span class="identifier">root_ptr</span> <span class="special">=</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">container</span><span class="special">::</span><span class="identifier">allocator_traits</span><span class="special"><</span>
+        <span class="identifier">Alloc</span>
+    <span class="special">>::</span><span class="identifier">allocate</span><span class="special">(</span><span class="identifier">allocator</span><span class="special">,</span> <span class="number">1</span><span class="special">);</span>
+
+    <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">container</span><span class="special">::</span><span class="identifier">allocator_traits</span><span class="special"><</span>
+        <span class="identifier">Alloc</span>
+    <span class="special">>::</span><span class="identifier">construct</span><span class="special">(</span><span class="identifier">allocator</span><span class="special">,</span> <span class="identifier">root_ptr</span><span class="special">,</span> <span class="special">*</span><span class="identifier">itr_begin</span><span class="special">);</span>
+
+    <span class="keyword">typename</span> <span class="identifier">Node</span><span class="special">::</span><span class="identifier">pointer</span> <span class="identifier">right_ptr</span> <span class="special">=</span> <span class="identifier">root_ptr</span><span class="special">;</span>
+    <span class="keyword">typename</span> <span class="identifier">Node</span><span class="special">::</span><span class="identifier">pointer</span> <span class="identifier">ancestor_ptr</span><span class="special">;</span>
+
+    <span class="keyword">for</span> <span class="special">(</span><span class="identifier">Iterator</span> <span class="identifier">itr</span> <span class="special">=</span> <span class="identifier">itr_begin</span><span class="special">;</span> <span class="special">++</span><span class="identifier">itr</span> <span class="special">!=</span> <span class="identifier">itr_end</span><span class="special">;)</span>
+    <span class="special">{</span>
+        <span class="keyword">if</span> <span class="special">(</span><span class="identifier">compare</span><span class="special">(*</span><span class="identifier">itr</span><span class="special">,</span> <span class="identifier">get</span><span class="special">(*</span><span class="identifier">root_ptr</span><span class="special">,</span> <span class="identifier">data_key</span><span class="special">())))</span>
+        <span class="special">{</span>
+            <span class="identifier">right_ptr</span> <span class="special">=</span> <span class="identifier">root_ptr</span> <span class="special">=</span> <span class="identifier">root_ptr</span><span class="special">-></span><span class="identifier">emplace_parent_of_left</span><span class="special">(*</span><span class="identifier">itr</span><span class="special">);</span>
+        <span class="special">}</span>
+        <span class="keyword">else</span> <span class="keyword">if</span> <span class="special">(!</span><span class="identifier">compare</span><span class="special">(*</span><span class="identifier">itr</span><span class="special">,</span> <span class="identifier">get</span><span class="special">(*</span><span class="identifier">right_ptr</span><span class="special">,</span> <span class="identifier">data_key</span><span class="special">())))</span>
+        <span class="special">{</span>
+            <span class="identifier">right_ptr</span> <span class="special">=</span> <span class="special">&*</span><span class="identifier">right_ptr</span><span class="special">-></span><span class="identifier">emplace_right</span><span class="special">(*</span><span class="identifier">itr</span><span class="special">);</span>
+        <span class="special">}</span>
+        <span class="keyword">else</span>
+        <span class="special">{</span>
+            <span class="keyword">for</span> <span class="special">(</span>
+                <span class="identifier">ancestor_ptr</span> <span class="special">=</span> <span class="identifier">right_ptr</span><span class="special">;</span>
+                <span class="identifier">ancestor_ptr</span><span class="special">-></span><span class="identifier">get_parent_ptr</span><span class="special">()</span> <span class="special">&&</span> <span class="identifier">compare</span><span class="special">(</span>
+                    <span class="special">*</span><span class="identifier">itr</span>
+                  <span class="special">,</span> <span class="identifier">get</span><span class="special">(*</span><span class="identifier">ancestor_ptr</span><span class="special">-></span><span class="identifier">get_parent_ptr</span><span class="special">(),</span> <span class="identifier">data_key</span><span class="special">())</span>
+                <span class="special">);</span>
+                <span class="identifier">ancestor_ptr</span> <span class="special">=</span> <span class="identifier">ancestor_ptr</span><span class="special">-></span><span class="identifier">get_parent_ptr</span><span class="special">()</span>
+            <span class="special">)</span>
+            <span class="special">{</span>
+            <span class="special">}</span>
+
+            <span class="identifier">BOOST_ASSERT</span><span class="special">(!!</span><span class="identifier">ancestor_ptr</span><span class="special">-></span><span class="identifier">get_parent_ptr</span><span class="special">());</span>
+            <span class="identifier">right_ptr</span> <span class="special">=</span> <span class="identifier">ancestor_ptr</span><span class="special">-></span><span class="identifier">emplace_parent_of_left</span><span class="special">(*</span><span class="identifier">itr</span><span class="special">);</span>
+        <span class="special">}</span>
+    <span class="special">}</span>
+</pre>
+<p>
+          The boost::std_heap_selector type induces
+          the <code class="computeroutput"><span class="identifier">breadth_first_descendant_iterator</span></code>
+          to replace the usual FIFO queue with a priority queue, while the <a class="link" href="compare_selector.html" title="compare_selector<Key>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">compareS</span></code></a>
+          type enables the priority queue to store pointers or iterators to tree
+          nodes while prioritizing according to their data. However, by default,
+          the comparator will prioritize nodes with higher-value data over nodes
+          with lower-value data, so it is necessary to use boost::bind()
+          to generate the appropriate comparator by switching the arguments to <code class="computeroutput"><span class="identifier">compare</span></code>.
+        </p>
+<pre class="programlisting"><span class="special">*</span><span class="identifier">itr_begin</span> <span class="special">=</span> <span class="identifier">get</span><span class="special">(*</span><span class="identifier">root_ptr</span><span class="special">,</span> <span class="identifier">data_key</span><span class="special">());</span>
+<span class="special">++</span><span class="identifier">itr_begin</span><span class="special">;</span>
+
+<span class="keyword">for</span> <span class="special">(</span>
+    <span class="identifier">breadth_first_descendant_iterator</span><span class="special"><</span>
+        <span class="identifier">Node</span> <span class="keyword">const</span>
+      <span class="special">,</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">std_heap_selector</span><span class="special"><</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">compareS</span><span class="special">></span>
+    <span class="special">></span> <span class="identifier">itr</span><span class="special">(</span>
+        <span class="special">*</span><span class="identifier">root_ptr</span>
+      <span class="special">,</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">bind</span><span class="special">(</span><span class="identifier">compare</span><span class="special">,</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">arg</span><span class="special"><</span><span class="number">2</span><span class="special">>(),</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">arg</span><span class="special"><</span><span class="number">1</span><span class="special">>())</span>
+    <span class="special">);</span>
+    <span class="identifier">itr</span><span class="special">;</span>
+    <span class="special">++</span><span class="identifier">itr</span>
+<span class="special">)</span>
+<span class="special">{</span>
+    <span class="identifier">BOOST_ASSERT</span><span class="special">(</span><span class="identifier">itr_begin</span> <span class="special">!=</span> <span class="identifier">itr_end</span><span class="special">);</span>
+    <span class="special">*</span><span class="identifier">itr_begin</span> <span class="special">=</span> <span class="identifier">get</span><span class="special">(*</span><span class="identifier">itr</span><span class="special">,</span> <span class="identifier">data_key</span><span class="special">());</span>
+    <span class="special">++</span><span class="identifier">itr_begin</span><span class="special">;</span>
+<span class="special">}</span>
+</pre>
+</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-2013 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="http://www.boost.org/doc/libs/release/doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="pre_order_iterator.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/breadth_first_iterator.html
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/breadth_first_iterator.html	2013-07-07 14:52:52 EDT (Sun, 07 Jul 2013)	(r84977)
@@ -0,0 +1,816 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>breadth_first_iterator<Node,Selector></title>
+<link rel="stylesheet" href="http://www.boost.org/doc/libs/release/doc/src/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.77.1">
+<link rel="home" href="../../index.html" title="Chapter 1. tree_node 0.5">
+<link rel="up" href="../reference.html" title="Reference">
+<link rel="prev" href="tree_node_base.html" title="tree_node_base<Derived>">
+<link rel="next" href="breadth_first_desc_iter.html" title="breadth_first_descendant_iterator<Node,Selector>">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr><td valign="top"><img alt="C++ Boost" width="277" height="86" src="../../../../../../boost.png"></td></tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="tree_node_base.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="breadth_first_desc_iter.html"><img src="http://www.boost.org/doc/libs/release/doc/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<Node,Selector>"><code class="computeroutput"><span class="identifier">breadth_first_iterator</span><span class="special"><</span><span class="identifier">Node</span><span class="special">,</span><span class="identifier">Selector</span><span class="special">></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>
+<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">Node</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Selector</span> <span class="special">=</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">dequeS</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="identifier">boost</span><span class="special">::</span><span class="identifier">iterator_adaptor</span><span class="special"><</span>
+            <span class="identifier">breadth_first_iterator</span><span class="special"><</span><span class="identifier">Node</span><span class="special">,</span><span class="identifier">Selector</span><span class="special">></span>
+          <span class="special">,</span> <span class="identifier">Node</span><span class="special">*</span>
+          <span class="special">,</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">use_default</span>
+          <span class="special">,</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">forward_traversal_tag</span>
+        <span class="special">></span>
+    <span class="special">{</span>
+        <span class="keyword">struct</span> <span class="identifier">enabler</span>
+        <span class="special">{</span>
+        <span class="special">};</span>
+
+     <span class="keyword">public</span><span class="special">:</span>
+        <span class="identifier">breadth_first_iterator</span><span class="special">();</span>
+
+        <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">Compare</span><span class="special">></span>
+        <span class="keyword">explicit</span> <span class="identifier">breadth_first_iterator</span><span class="special">(</span><span class="identifier">Compare</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">compare</span><span class="special">);</span>
+
+        <span class="keyword">explicit</span> <span class="identifier">breadth_first_iterator</span><span class="special">(</span><span class="identifier">Node</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">Compare</span><span class="special">></span>
+        <span class="identifier">breadth_first_iterator</span><span class="special">(</span><span class="identifier">Node</span><span class="special">&</span> <span class="identifier">node</span><span class="special">,</span> <span class="identifier">Compare</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">compare</span><span class="special">);</span>
+
+        <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">N</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">S</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">N</span><span class="special">,</span><span class="identifier">S</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="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="keyword">typename</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">eval_if</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">mpl</span><span class="special">::</span><span class="identifier">if_</span><span class="special"><</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">is_same</span><span class="special"><</span><span class="identifier">S</span><span class="special">,</span><span class="identifier">Selector</span><span class="special">></span>
+                      <span class="special">,</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">is_convertible</span><span class="special"><</span><span class="identifier">N</span><span class="special">,</span><span class="identifier">Node</span><span class="special">></span>
+                      <span class="special">,</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">false_</span>
+                    <span class="special">>::</span><span class="identifier">type</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">eval_if</span><span class="special"><</span>
+                        <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_heap_selector</span><span class="special"><</span><span class="identifier">Selector</span><span class="special">></span>
+                      <span class="special">,</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">false_</span>
+                      <span class="special">,</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">if_</span><span class="special"><</span>
+                            <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_std_heap_selector</span><span class="special"><</span><span class="identifier">Selector</span><span class="special">></span>
+                          <span class="special">,</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">false_</span>
+                          <span class="special">,</span> <span class="special">::</span><span class="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="special">></span>
+                  <span class="special">,</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">false_</span>
+                <span class="special">>::</span><span class="identifier">type</span>
+              <span class="special">,</span> <span class="identifier">enabler</span>
+            <span class="special">>::</span><span class="identifier">type</span> <span class="special">=</span> <span class="identifier">enabler</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">N</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">S</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">N</span><span class="special">,</span><span class="identifier">S</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="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="keyword">typename</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">eval_if</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">mpl</span><span class="special">::</span><span class="identifier">if_</span><span class="special"><</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">is_same</span><span class="special"><</span><span class="identifier">S</span><span class="special">,</span><span class="identifier">Selector</span><span class="special">></span>
+                      <span class="special">,</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">is_convertible</span><span class="special"><</span><span class="identifier">N</span><span class="special">,</span><span class="identifier">Node</span><span class="special">></span>
+                      <span class="special">,</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">false_</span>
+                    <span class="special">>::</span><span class="identifier">type</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">if_</span><span class="special"><</span>
+                        <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_heap_selector</span><span class="special"><</span><span class="identifier">Selector</span><span class="special">></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">true_</span>
+                      <span class="special">,</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">is_std_heap_selector</span><span class="special"><</span><span class="identifier">Selector</span><span class="special">></span>
+                    <span class="special">></span>
+                  <span class="special">,</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">false_</span>
+                <span class="special">>::</span><span class="identifier">type</span>
+              <span class="special">,</span> <span class="identifier">enabler</span>
+            <span class="special">>::</span><span class="identifier">type</span> <span class="special">=</span> <span class="identifier">enabler</span><span class="special">()</span>
+        <span class="special">);</span>
+
+        <span class="keyword">operator</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">tree_node</span><span class="special">::</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>
+</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 root node passed to its constructor--and all
+          its descendants--in breadth-first fashion: e.g. given the following tree
+          representation:
+        </p>
+<pre class="programlisting">      <span class="identifier">D</span>
+      <span class="special">|</span>
+  <span class="identifier">E</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">A</span>   <span class="identifier">F</span>   <span class="identifier">C</span>   <span class="identifier">G</span>
+</pre>
+<p>
+          By default, this iterator will traverse the tree nodes in the following
+          order:
+        </p>
+<pre class="programlisting"><span class="identifier">D</span> <span class="identifier">E</span> <span class="identifier">B</span> <span class="identifier">A</span> <span class="identifier">F</span> <span class="identifier">C</span> <span class="identifier">G</span>
+</pre>
+<p>
+          However, if the <code class="computeroutput"><span class="identifier">Selector</span></code>
+          template argument causes the buffer to sort its elements according to a
+          particular ordering, then the iterator traversal will take this ordering
+          into account as well as the ply of the nodes. In this example, if the buffer
+          prioritizes lower ASCII values over higher ones, then this iterator will
+          traverse the tree nodes in the following order:
+        </p>
+<pre class="programlisting"><span class="identifier">D</span> <span class="identifier">B</span> <span class="identifier">C</span> <span class="identifier">E</span> <span class="identifier">A</span> <span class="identifier">F</span> <span class="identifier">G</span>
+</pre>
+</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>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span>boost/tree_node/iterator/breadth_first.hpp<span class="special">></span>
+</pre>
+<p>
+          To register under Boost.Typeof:
+        </p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span>boost/typeof/boost/tree_node/iterator/breadth_first.hpp<span class="special">></span>
+</pre>
+</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">Node</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    The type of a tree node.
+                  </p>
+                </td>
+<td>
+                  <p>
+                    It must model the <a class="link" href="../concepts/tree_node.html" title="Tree Node"><span class="bold"><strong>Tree Node</strong></span></a> concept, but it can be
+                    <code class="computeroutput"><span class="keyword">const</span></code>-qualified.
+                  </p>
+                </td>
+<td>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">Selector</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    The type that determines the buffer used to enforce breadth-first
+                    order.
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Either <code class="literal">boost::container_gen<Selector>::type</code>
+                    must evaluate to a double-ended Sequence, or <code class="literal">boost::is_std_heap_selector<Selector></code>
+                    or <code class="literal">boost::is_heap_selector<Selector></code>
+                    must evaluate to boost::mpl::true_.
+                  </p>
+                </td>
+<td>
+                  <p>
+                    boost::dequeS
+                  </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.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>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem"><p>
+              <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>
+            </p></li>
+<li class="listitem"><p>
+              Default Constructible
+            </p></li>
+<li class="listitem"><p>
+              <a href="http://www.boost.org/libs/utility/CopyConstructible.html" target="_top"><span class="bold"><strong>Copy
+              Constructible</strong></span></a>
+            </p></li>
+<li class="listitem"><p>
+              Assignable
+            </p></li>
+</ul></div>
+</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>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+                  <p>
+                    Name
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Expression
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Description
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Type requirements
+                  </p>
+                </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+                  <p>
+                    Value type
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">typedef</span> <span class="special">...</span> <span class="identifier">value_type</span><span class="special">;</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Defined by the <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> concept.
+                  </p>
+                </td>
+<td>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Reference type
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">typedef</span> <span class="special">...</span> <span class="identifier">reference</span><span class="special">;</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Defined by the Forward Iterator concept.
+                  </p>
+                </td>
+<td>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Pointer type
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">typedef</span> <span class="special">...</span> <span class="identifier">pointer</span><span class="special">;</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Defined by the Forward Iterator concept.
+                  </p>
+                </td>
+<td>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Distance type
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">typedef</span> <span class="special">...</span> <span class="identifier">difference_type</span><span class="special">;</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Defined by the Forward Iterator concept.
+                  </p>
+                </td>
+<td>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Iterator category
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">typedef</span> <span class="special">...</span> <span class="identifier">iterator_category</span><span class="special">;</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Defined by the Forward Iterator concept.
+                  </p>
+                </td>
+<td>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Default constructor
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">breadth_first_iterator</span><span class="special">();</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Sets this iterator past-the-end. Required by the Default Constructible concept.
+                  </p>
+                </td>
+<td>
+                  <p>
+                    The buffer type as determined by <code class="computeroutput"><span class="identifier">Selector</span></code>
+                    must also model the Default Constructible concept.
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Constructor with comparator
+                  </p>
+                </td>
+<td>
+<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">Compare</span><span class="special">></span>
+<span class="keyword">explicit</span> <span class="identifier">breadth_first_iterator</span><span class="special">(</span><span class="identifier">Compare</span> <span class="keyword">const</span><span class="special">&);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Sets this iterator past-the-end, and constructs the underlying
+                    buffer with the specified comparator.
+                  </p>
+                </td>
+<td>
+                  <p>
+                    The underlying buffer must be constructible using the specified
+                    comparator.
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Constructor from node
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">explicit</span> <span class="identifier">breadth_first_iterator</span><span class="special">(</span><span class="identifier">Node</span><span class="special">&);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Defined by the <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> concept.
+                  </p>
+                </td>
+<td>
+                  <p>
+                    The buffer type as determined by <code class="computeroutput"><span class="identifier">Selector</span></code>
+                    must model the Default Constructible concept.
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Constructor from node with comparator
+                  </p>
+                </td>
+<td>
+<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">Compare</span><span class="special">></span>
+<span class="identifier">breadth_first_iterator</span><span class="special">(</span><span class="identifier">Node</span><span class="special">&,</span> <span class="identifier">Compare</span> <span class="keyword">const</span><span class="special">&);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Sets this iterator to traverse the specified node and its descendants,
+                    and constructs the underlying buffer with the specified comparator.
+                  </p>
+                </td>
+<td>
+                  <p>
+                    The underlying buffer must be constructible using the specified
+                    comparator.
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Conversion constructor
+                  </p>
+                </td>
+<td>
+<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">N</span><span class="special">,</span> <span class="identifier">typemame</span> <span class="identifier">S</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">N</span><span class="special">,</span><span class="identifier">S</span><span class="special">></span> <span class="keyword">const</span><span class="special">&);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Constructs this iterator as a copy of the specified one so that
+                    the current node is of type <code class="computeroutput"><span class="identifier">Node</span></code>.
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Both <code class="literal">std::tr1::is_convertible<N,Node></code>
+                    and <code class="literal">std::tr1::is_same<S,Selector></code>
+                    must evaluate to std::tr1::true_type.
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Copy constructor
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><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>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Defined by the Copy Constructible concept.
+                  </p>
+                </td>
+<td>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Assignment operator
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><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>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Defined by the Assignable concept.
+                  </p>
+                </td>
+<td>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Dereference operator
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">reference</span> <span class="keyword">operator</span><span class="special">*()</span> <span class="keyword">const</span><span class="special">;</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Returns the current node. Required by the Forward Iterator concept.
+                  </p>
+                </td>
+<td>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Indirection operator
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">pointer</span> <span class="keyword">operator</span><span class="special">->()</span> <span class="keyword">const</span><span class="special">;</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Returns a pointer to the current node. Required by the Forward Iterator concept.
+                  </p>
+                </td>
+<td>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Pre-increment operator
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">breadth_first_iterator</span><span class="special">&</span> <span class="keyword">operator</span><span class="special">++();</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Enqueues the children of the current node, then dequeues the
+                    next node and sets the invoking iterator to point to it. Returns
+                    the invoking iterator. Required by the Forward Iterator concept.
+                  </p>
+                </td>
+<td>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Post-increment operator
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><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>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Enqueues the children of the current node, then dequeues the
+                    next node and sets the invoking iterator to point to it. Returns
+                    a new iterator pointing to the (previous) current node. Required
+                    by the Forward Iterator concept.
+                  </p>
+                </td>
+<td>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Traversal state conversion operator
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">operator</span> <a class="link" href="traversal_state.html" title="traversal_state">tree_node::traversal_state</a><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Defined by 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>
+<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.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>
+                    Definition
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Description
+                  </p>
+                </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+                  <p>
+                    Iterator creation
+                  </p>
+                </td>
+<td>
+<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">Node</span><span class="special">></span>
+    <span class="identifier">breadth_first_iterator</span><span class="special"><</span><span class="identifier">Node</span><span class="special">,::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">dequeS</span><span class="special">></span>
+        <span class="identifier">make_breadth_first_iterator</span><span class="special">(</span><span class="identifier">Node</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>
+                </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>
+                    Iterator creation with selector
+                  </p>
+                </td>
+<td>
+<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">Selector</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Node</span><span class="special">></span>
+    <span class="identifier">breadth_first_iterator</span><span class="special"><</span><span class="identifier">Node</span><span class="special">,</span><span class="identifier">Selector</span><span class="special">></span>
+        <span class="identifier">make_breadth_first_iterator</span><span class="special">(</span><span class="identifier">Node</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>
+                </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.
+                    The <code class="computeroutput"><span class="identifier">Selector</span></code>
+                    type will determine the buffer used to enforce breadth-first
+                    order.
+                  </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.example"></a><a class="link" href="breadth_first_iterator.html#tree_node.reference.breadth_first_iterator.example" title="Example">Example</a>
+</h4></div></div></div>
+<p>
+          If a tree possess the property that the value associated with each non-root
+          node is greater than that associated with its parent, then a breadth-first
+          traversal that prioritizes lower-value nodes over higher-value ones will
+          output a sorted range. The <a class="link" href="cartesian_sort.html" title="cartesian_sort()"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">cartesian_sort</span><span class="special">()</span></code></a>
+          algorithm's implementation generates a tree that possesses this property.
+        </p>
+<pre class="programlisting"><span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">Iterator</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Compare</span><span class="special">></span>
+<span class="keyword">void</span>
+    <span class="identifier">cartesian_sort</span><span class="special">(</span>
+        <span class="identifier">Iterator</span> <span class="identifier">itr_begin</span>
+      <span class="special">,</span> <span class="identifier">Iterator</span> <span class="identifier">itr_end</span>
+      <span class="special">,</span> <span class="identifier">Compare</span> <span class="identifier">compare</span>
+    <span class="special">)</span>
+<span class="special">{</span>
+    <span class="keyword">if</span> <span class="special">(</span><span class="identifier">itr_begin</span> <span class="special">==</span> <span class="identifier">itr_end</span><span class="special">)</span> <span class="keyword">return</span><span class="special">;</span>
+
+    <span class="keyword">typedef</span> <span class="keyword">typename</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">iterator_value</span><span class="special"><</span><span class="identifier">Iterator</span><span class="special">>::</span><span class="identifier">type</span> <span class="identifier">Value</span><span class="special">;</span>
+    <span class="keyword">typedef</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">binary_node</span><span class="special"><</span><span class="identifier">Value</span><span class="special">></span> <span class="identifier">Node</span><span class="special">;</span>
+    <span class="keyword">typedef</span> <span class="keyword">typename</span> <span class="identifier">Node</span><span class="special">::</span><span class="identifier">traits</span><span class="special">::</span><span class="identifier">allocator</span> <span class="identifier">Alloc</span><span class="special">;</span>
+
+    <span class="identifier">Alloc</span> <span class="identifier">allocator</span><span class="special">;</span>
+    <span class="keyword">typename</span> <span class="identifier">Node</span><span class="special">::</span><span class="identifier">pointer</span> <span class="identifier">root_ptr</span> <span class="special">=</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">container</span><span class="special">::</span><span class="identifier">allocator_traits</span><span class="special"><</span>
+        <span class="identifier">Alloc</span>
+    <span class="special">>::</span><span class="identifier">allocate</span><span class="special">(</span><span class="identifier">allocator</span><span class="special">,</span> <span class="number">1</span><span class="special">);</span>
+
+    <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">container</span><span class="special">::</span><span class="identifier">allocator_traits</span><span class="special"><</span>
+        <span class="identifier">Alloc</span>
+    <span class="special">>::</span><span class="identifier">construct</span><span class="special">(</span><span class="identifier">allocator</span><span class="special">,</span> <span class="identifier">root_ptr</span><span class="special">,</span> <span class="special">*</span><span class="identifier">itr_begin</span><span class="special">);</span>
+
+    <span class="keyword">typename</span> <span class="identifier">Node</span><span class="special">::</span><span class="identifier">pointer</span> <span class="identifier">right_ptr</span> <span class="special">=</span> <span class="identifier">root_ptr</span><span class="special">;</span>
+    <span class="keyword">typename</span> <span class="identifier">Node</span><span class="special">::</span><span class="identifier">pointer</span> <span class="identifier">ancestor_ptr</span><span class="special">;</span>
+
+    <span class="keyword">for</span> <span class="special">(</span><span class="identifier">Iterator</span> <span class="identifier">itr</span> <span class="special">=</span> <span class="identifier">itr_begin</span><span class="special">;</span> <span class="special">++</span><span class="identifier">itr</span> <span class="special">!=</span> <span class="identifier">itr_end</span><span class="special">;)</span>
+    <span class="special">{</span>
+        <span class="keyword">if</span> <span class="special">(</span><span class="identifier">compare</span><span class="special">(*</span><span class="identifier">itr</span><span class="special">,</span> <span class="identifier">get</span><span class="special">(*</span><span class="identifier">root_ptr</span><span class="special">,</span> <span class="identifier">data_key</span><span class="special">())))</span>
+        <span class="special">{</span>
+            <span class="identifier">right_ptr</span> <span class="special">=</span> <span class="identifier">root_ptr</span> <span class="special">=</span> <span class="identifier">root_ptr</span><span class="special">-></span><span class="identifier">emplace_parent_of_left</span><span class="special">(*</span><span class="identifier">itr</span><span class="special">);</span>
+        <span class="special">}</span>
+        <span class="keyword">else</span> <span class="keyword">if</span> <span class="special">(!</span><span class="identifier">compare</span><span class="special">(*</span><span class="identifier">itr</span><span class="special">,</span> <span class="identifier">get</span><span class="special">(*</span><span class="identifier">right_ptr</span><span class="special">,</span> <span class="identifier">data_key</span><span class="special">())))</span>
+        <span class="special">{</span>
+            <span class="identifier">right_ptr</span> <span class="special">=</span> <span class="special">&*</span><span class="identifier">right_ptr</span><span class="special">-></span><span class="identifier">emplace_right</span><span class="special">(*</span><span class="identifier">itr</span><span class="special">);</span>
+        <span class="special">}</span>
+        <span class="keyword">else</span>
+        <span class="special">{</span>
+            <span class="keyword">for</span> <span class="special">(</span>
+                <span class="identifier">ancestor_ptr</span> <span class="special">=</span> <span class="identifier">right_ptr</span><span class="special">;</span>
+                <span class="identifier">ancestor_ptr</span><span class="special">-></span><span class="identifier">get_parent_ptr</span><span class="special">()</span> <span class="special">&&</span> <span class="identifier">compare</span><span class="special">(</span>
+                    <span class="special">*</span><span class="identifier">itr</span>
+                  <span class="special">,</span> <span class="identifier">get</span><span class="special">(*</span><span class="identifier">ancestor_ptr</span><span class="special">-></span><span class="identifier">get_parent_ptr</span><span class="special">(),</span> <span class="identifier">data_key</span><span class="special">())</span>
+                <span class="special">);</span>
+                <span class="identifier">ancestor_ptr</span> <span class="special">=</span> <span class="identifier">ancestor_ptr</span><span class="special">-></span><span class="identifier">get_parent_ptr</span><span class="special">()</span>
+            <span class="special">)</span>
+            <span class="special">{</span>
+            <span class="special">}</span>
+
+            <span class="identifier">BOOST_ASSERT</span><span class="special">(!!</span><span class="identifier">ancestor_ptr</span><span class="special">-></span><span class="identifier">get_parent_ptr</span><span class="special">());</span>
+            <span class="identifier">right_ptr</span> <span class="special">=</span> <span class="identifier">ancestor_ptr</span><span class="special">-></span><span class="identifier">emplace_parent_of_left</span><span class="special">(*</span><span class="identifier">itr</span><span class="special">);</span>
+        <span class="special">}</span>
+    <span class="special">}</span>
+</pre>
+<p>
+          The boost::std_heap_selector type induces
+          the <code class="computeroutput"><span class="identifier">breadth_first_iterator</span></code>
+          to replace the usual FIFO queue with a priority queue, while the <a class="link" href="compare_selector.html" title="compare_selector<Key>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">compareS</span></code></a>
+          type enables the priority queue to store pointers or iterators to tree
+          nodes while prioritizing according to their data. However, by default,
+          the comparator will prioritize nodes with higher-value data over nodes
+          with lower-value data, so it is necessary to use boost::bind()
+          to generate the appropriate comparator by switching the arguments to <code class="computeroutput"><span class="identifier">compare</span></code>.
+        </p>
+<pre class="programlisting"><span class="keyword">for</span> <span class="special">(</span>
+    <span class="identifier">breadth_first_iterator</span><span class="special"><</span>
+        <span class="identifier">Node</span> <span class="keyword">const</span>
+      <span class="special">,</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">std_heap_selector</span><span class="special"><</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">compareS</span><span class="special">></span>
+    <span class="special">></span> <span class="identifier">itr</span><span class="special">(</span>
+        <span class="special">*</span><span class="identifier">root_ptr</span>
+      <span class="special">,</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">bind</span><span class="special">(</span><span class="identifier">compare</span><span class="special">,</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">arg</span><span class="special"><</span><span class="number">2</span><span class="special">>(),</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">arg</span><span class="special"><</span><span class="number">1</span><span class="special">>())</span>
+    <span class="special">);</span>
+    <span class="identifier">itr</span><span class="special">;</span>
+    <span class="special">++</span><span class="identifier">itr</span>
+<span class="special">)</span>
+<span class="special">{</span>
+    <span class="identifier">BOOST_ASSERT</span><span class="special">(</span><span class="identifier">itr_begin</span> <span class="special">!=</span> <span class="identifier">itr_end</span><span class="special">);</span>
+    <span class="special">*</span><span class="identifier">itr_begin</span> <span class="special">=</span> <span class="identifier">get</span><span class="special">(*</span><span class="identifier">itr</span><span class="special">,</span> <span class="identifier">data_key</span><span class="special">());</span>
+    <span class="special">++</span><span class="identifier">itr_begin</span><span class="special">;</span>
+<span class="special">}</span>
+</pre>
+</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-2013 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="tree_node_base.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="breadth_first_desc_iter.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/can_use_fusion.html
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/can_use_fusion.html	2013-07-07 14:52:52 EDT (Sun, 07 Jul 2013)	(r84977)
@@ -0,0 +1,53 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>BOOST_TREE_NODE_CAN_USE_FUSION</title>
+<link rel="stylesheet" href="http://www.boost.org/doc/libs/release/doc/src/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.77.1">
+<link rel="home" href="../../index.html" title="Chapter 1. tree_node 0.5">
+<link rel="up" href="../reference.html" title="Reference">
+<link rel="prev" href="emplace_ctor_w_alloc_i_def.html" title="BOOST_TREE_NODE_EMPLACEMENT_CTOR_W_ALLOC_INLINE_DEF">
+<link rel="next" href="can_use_fusion_with_typeof.html" title="BOOST_TREE_NODE_CAN_USE_FUSION_WITH_TYPEOF">
+</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="emplace_ctor_w_alloc_i_def.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="can_use_fusion_with_typeof.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="tree_node.reference.can_use_fusion"></a><a class="link" href="can_use_fusion.html" title="BOOST_TREE_NODE_CAN_USE_FUSION"><code class="computeroutput"><span class="identifier">BOOST_TREE_NODE_CAN_USE_FUSION</span></code></a>
+</h3></div></div></div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.can_use_fusion.description"></a><a class="link" href="can_use_fusion.html#tree_node.reference.can_use_fusion.description" title="Description">Description</a>
+</h4></div></div></div>
+<p>
+          Defined only if the compiler supports boost::enable_if and partial specialization
+          of templates.
+        </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.can_use_fusion.definition"></a><a class="link" href="can_use_fusion.html#tree_node.reference.can_use_fusion.definition" title="Where defined">Where
+        defined</a>
+</h4></div></div></div>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span>boost/tree_node/preprocessor.hpp<span class="special">></span>
+</pre>
+</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-2013 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="emplace_ctor_w_alloc_i_def.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="can_use_fusion_with_typeof.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/can_use_fusion_with_typeof.html
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/can_use_fusion_with_typeof.html	2013-07-07 14:52:52 EDT (Sun, 07 Jul 2013)	(r84977)
@@ -0,0 +1,54 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>BOOST_TREE_NODE_CAN_USE_FUSION_WITH_TYPEOF</title>
+<link rel="stylesheet" href="http://www.boost.org/doc/libs/release/doc/src/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.77.1">
+<link rel="home" href="../../index.html" title="Chapter 1. tree_node 0.5">
+<link rel="up" href="../reference.html" title="Reference">
+<link rel="prev" href="can_use_fusion.html" title="BOOST_TREE_NODE_CAN_USE_FUSION">
+<link rel="next" href="../changelog.html" title="Changelog">
+</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="can_use_fusion.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../changelog.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="tree_node.reference.can_use_fusion_with_typeof"></a><a class="link" href="can_use_fusion_with_typeof.html" title="BOOST_TREE_NODE_CAN_USE_FUSION_WITH_TYPEOF"><code class="computeroutput"><span class="identifier">BOOST_TREE_NODE_CAN_USE_FUSION_WITH_TYPEOF</span></code>
+      </a>
+</h3></div></div></div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.can_use_fusion_with_typeof.description"></a><a class="link" href="can_use_fusion_with_typeof.html#tree_node.reference.can_use_fusion_with_typeof.description" title="Description">Description</a>
+</h4></div></div></div>
+<p>
+          Defined only if <a class="link" href="can_use_fusion.html" title="BOOST_TREE_NODE_CAN_USE_FUSION"><code class="computeroutput"><span class="identifier">BOOST_TREE_NODE_CAN_USE_FUSION</span></code></a>
+          is defined and BOOST_TYPEOF_EMULATION is not.
+        </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.can_use_fusion_with_typeof.definition"></a><a class="link" href="can_use_fusion_with_typeof.html#tree_node.reference.can_use_fusion_with_typeof.definition" title="Where defined">Where
+        defined</a>
+</h4></div></div></div>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span>boost/tree_node/preprocessor.hpp<span class="special">></span>
+</pre>
+</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-2013 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="can_use_fusion.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="../changelog.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/cartesian_sort.html
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/cartesian_sort.html	2013-07-07 14:52:52 EDT (Sun, 07 Jul 2013)	(r84977)
@@ -0,0 +1,90 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>cartesian_sort()</title>
+<link rel="stylesheet" href="http://www.boost.org/doc/libs/release/doc/src/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.77.1">
+<link rel="home" href="../../index.html" title="Chapter 1. tree_node 0.5">
+<link rel="up" href="../reference.html" title="Reference">
+<link rel="prev" href="binary_upper_bound.html" title="binary_upper_bound()">
+<link rel="next" href="cartesian_sort_range.html" title="cartesian_sort_range()">
+</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="binary_upper_bound.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="cartesian_sort_range.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="tree_node.reference.cartesian_sort"></a><a class="link" href="cartesian_sort.html" title="cartesian_sort()"><code class="computeroutput"><span class="identifier">cartesian_sort</span><span class="special">()</span></code></a>
+</h3></div></div></div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.cartesian_sort.synopsis"></a><a class="link" href="cartesian_sort.html#tree_node.reference.cartesian_sort.synopsis" title="Synopsis">Synopsis</a>
+</h4></div></div></div>
+<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">Iterator</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Compare</span><span class="special">></span>
+    <span class="keyword">void</span>
+        <span class="identifier">cartesian_sort</span><span class="special">(</span>
+            <span class="identifier">Iterator</span> <span class="identifier">itr_begin</span>
+          <span class="special">,</span> <span class="identifier">Iterator</span> <span class="identifier">itr_end</span>
+          <span class="special">,</span> <span class="identifier">Compare</span> <span class="identifier">compare</span>
+        <span class="special">);</span>
+
+    <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">Iterator</span><span class="special">></span>
+    <span class="keyword">void</span> <span class="identifier">cartesian_sort</span><span class="special">(</span><span class="identifier">Iterator</span> <span class="identifier">itr_begin</span><span class="special">,</span> <span class="identifier">Iterator</span> <span class="identifier">itr_end</span><span class="special">);</span>
+<span class="special">}}</span>  <span class="comment">// namespace boost::tree_node</span>
+</pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.cartesian_sort.description"></a><a class="link" href="cartesian_sort.html#tree_node.reference.cartesian_sort.description" title="Description">Description</a>
+</h4></div></div></div>
+<p>
+          The <code class="computeroutput"><span class="identifier">cartesian_sort</span><span class="special">()</span></code>
+          function sorts the elements in <code class="computeroutput"><span class="special">[</span><span class="identifier">itr_begin</span><span class="special">,</span>
+          <span class="identifier">itr_end</span><span class="special">)</span></code>
+          into ascending order, meaning that if <code class="computeroutput"><span class="identifier">i</span></code>
+          and <code class="computeroutput"><span class="identifier">j</span></code> are any two valid
+          iterators in <code class="computeroutput"><span class="special">[</span><span class="identifier">itr_begin</span><span class="special">,</span> <span class="identifier">itr_end</span><span class="special">)</span></code> such that <code class="computeroutput"><span class="identifier">i</span></code>
+          precedes <code class="computeroutput"><span class="identifier">j</span></code>, then <code class="computeroutput"><span class="special">*</span><span class="identifier">j</span></code> is
+          not less than <code class="computeroutput"><span class="special">*</span><span class="identifier">i</span></code>.
+          The iterator type must fulfill the Forward Iterator concept, and its value
+          type must be mutable.
+        </p>
+<p>
+          The <code class="computeroutput"><span class="identifier">cartesian_sort</span><span class="special">()</span></code>
+          function is not guaranteed to be stable. That is, if <code class="computeroutput"><span class="special">*</span><span class="identifier">i</span></code> and <code class="computeroutput"><span class="special">*</span><span class="identifier">j</span></code> are equivalent, meaning neither one
+          is less than the other, then it is not guaranteed that <code class="computeroutput"><span class="identifier">cartesian_sort</span><span class="special">()</span></code> will preserve the relative order of these
+          two elements.
+        </p>
+<p>
+          The first version compares objects using the Strict Weak Ordering object <code class="computeroutput"><span class="identifier">compare</span></code>. The second version compares
+          objects using the less-than operator.
+        </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.cartesian_sort.definition"></a><a class="link" href="cartesian_sort.html#tree_node.reference.cartesian_sort.definition" title="Where defined">Where
+        defined</a>
+</h4></div></div></div>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span>boost/tree_node/algorithm/cartesian_sort.hpp<span class="special">></span>
+</pre>
+</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-2013 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="binary_upper_bound.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="cartesian_sort_range.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/cartesian_sort_range.html
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/cartesian_sort_range.html	2013-07-07 14:52:52 EDT (Sun, 07 Jul 2013)	(r84977)
@@ -0,0 +1,92 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>cartesian_sort_range()</title>
+<link rel="stylesheet" href="http://www.boost.org/doc/libs/release/doc/src/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.77.1">
+<link rel="home" href="../../index.html" title="Chapter 1. tree_node 0.5">
+<link rel="up" href="../reference.html" title="Reference">
+<link rel="prev" href="cartesian_sort.html" title="cartesian_sort()">
+<link rel="next" href="dereference_iterator.html" title="dereference_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="cartesian_sort.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="dereference_iterator.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="tree_node.reference.cartesian_sort_range"></a><a class="link" href="cartesian_sort_range.html" title="cartesian_sort_range()"><code class="computeroutput"><span class="identifier">cartesian_sort_range</span><span class="special">()</span></code></a>
+</h3></div></div></div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.cartesian_sort_range.synopsis"></a><a class="link" href="cartesian_sort_range.html#tree_node.reference.cartesian_sort_range.synopsis" title="Synopsis">Synopsis</a>
+</h4></div></div></div>
+<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">Range</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Compare</span><span class="special">></span>
+    <span class="identifier">Range</span><span class="special">&</span> <span class="identifier">cartesian_sort_range</span><span class="special">(</span><span class="identifier">Range</span><span class="special">&</span> <span class="identifier">r</span><span class="special">,</span> <span class="identifier">Compare</span> <span class="identifier">compare</span><span class="special">);</span>
+
+    <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">Range</span><span class="special">></span>
+    <span class="identifier">Range</span><span class="special">&</span> <span class="identifier">cartesian_sort_range</span><span class="special">(</span><span class="identifier">Range</span><span class="special">&</span> <span class="identifier">r</span><span class="special">);</span>
+<span class="special">}}</span>  <span class="comment">// namespace boost::tree_node</span>
+</pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.cartesian_sort_range.description"></a><a class="link" href="cartesian_sort_range.html#tree_node.reference.cartesian_sort_range.description" title="Description">Description</a>
+</h4></div></div></div>
+<p>
+          The <code class="computeroutput"><span class="identifier">cartesian_sort_range</span><span class="special">()</span></code> function sorts the elements in the specified
+          range into ascending order, meaning that if <code class="computeroutput"><span class="identifier">i</span></code>
+          and <code class="computeroutput"><span class="identifier">j</span></code> are any two valid
+          iterators in the specified range such that <code class="computeroutput"><span class="identifier">i</span></code>
+          precedes <code class="computeroutput"><span class="identifier">j</span></code>, then <code class="computeroutput"><span class="special">*</span><span class="identifier">j</span></code> is
+          not less than <code class="computeroutput"><span class="special">*</span><span class="identifier">i</span></code>.
+          The range type must fulfill the Forward Range concept, and it must be mutable.
+        </p>
+<p>
+          The <code class="computeroutput"><span class="identifier">cartesian_sort_range</span><span class="special">()</span></code> function is not guaranteed to be stable.
+          That is, if <code class="computeroutput"><span class="special">*</span><span class="identifier">i</span></code>
+          and <code class="computeroutput"><span class="special">*</span><span class="identifier">j</span></code>
+          are equivalent, meaning neither one is less than the other, then it is
+          not guaranteed that <code class="computeroutput"><span class="identifier">cartesian_sort_range</span><span class="special">()</span></code> will preserve the relative order of these
+          two elements.
+        </p>
+<p>
+          The first version compares objects using the Strict Weak Ordering object <code class="computeroutput"><span class="identifier">compare</span></code>. The second version compares
+          objects using the less-than operator.
+        </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.cartesian_sort_range.definition"></a><a class="link" href="cartesian_sort_range.html#tree_node.reference.cartesian_sort_range.definition" title="Where defined">Where
+        defined</a>
+</h4></div></div></div>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span>boost/tree_node/algorithm/cartesian_sort.hpp<span class="special">></span>
+</pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.cartesian_sort_range.test"></a><a class="link" href="cartesian_sort_range.html#tree_node.reference.cartesian_sort_range.test" title="Test">Test</a>
+</h4></div></div></div>
+<p>
+          <test/cartesian_sort.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-2013 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="cartesian_sort.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="dereference_iterator.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/compare_selector.html
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/compare_selector.html	2013-07-07 14:52:52 EDT (Sun, 07 Jul 2013)	(r84977)
@@ -0,0 +1,405 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>compare_selector<Key></title>
+<link rel="stylesheet" href="http://www.boost.org/doc/libs/release/doc/src/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.77.1">
+<link rel="home" href="../../index.html" title="Chapter 1. tree_node 0.5">
+<link rel="up" href="../reference.html" title="Reference">
+<link rel="prev" href="depth_first_desc_iter.html" title="depth_first_descendant_iterator<Node,IsReverse>">
+<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="depth_first_desc_iter.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="traversal_state.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="tree_node.reference.compare_selector"></a><a class="link" href="compare_selector.html" title="compare_selector<Key>"><code class="computeroutput"><span class="identifier">compare_selector</span><span class="special"><</span><span class="identifier">Key</span><span class="special">></span></code></a>
+</h3></div></div></div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.compare_selector.synopsis"></a><a class="link" href="compare_selector.html#tree_node.reference.compare_selector.synopsis" title="Synopsis">Synopsis</a>
+</h4></div></div></div>
+<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">struct</span> <span class="identifier">compare_selector</span>
+    <span class="special">{</span>
+        <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">NodeIterator</span><span class="special">></span>
+        <span class="keyword">struct</span> <span class="identifier">apply</span>
+        <span class="special">{</span>
+            <span class="keyword">class</span> <span class="identifier">type</span>
+            <span class="special">{</span>
+
+             <span class="keyword">public</span><span class="special">:</span>
+                <span class="keyword">typedef</span> <span class="identifier">NodeIterator</span> <span class="identifier">first_argument_type</span><span class="special">;</span>
+                <span class="keyword">typedef</span> <span class="identifier">NodeIterator</span> <span class="identifier">second_argument_type</span><span class="special">;</span>
+                <span class="keyword">typedef</span> <span class="keyword">bool</span> <span class="identifier">result_type</span><span class="special">;</span>
+
+                <span class="identifier">type</span><span class="special">();</span>
+
+                <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">Function</span><span class="special">></span>
+                <span class="identifier">type</span><span class="special">(</span><span class="identifier">Function</span> <span class="identifier">compare</span><span class="special">);</span>
+
+                <span class="identifier">result_type</span>
+                    <span class="keyword">operator</span><span class="special">()(</span>
+                        <span class="identifier">first_argument_type</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">lhs_node_itr</span>
+                      <span class="special">,</span> <span class="identifier">second_argument_type</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">rhs_node_itr</span>
+                    <span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
+
+            <span class="special">};</span>
+        <span class="special">};</span>
+    <span class="special">};</span>
+<span class="special">}}</span>  <span class="comment">// namespace boost::tree_node</span>
+</pre>
+<p>
+          Forward declarations:
+        </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="identifier">data_key</span><span class="special">></span>
+    <span class="keyword">struct</span> <span class="identifier">compare_selector</span><span class="special">;</span>
+
+    <span class="keyword">typedef</span> <span class="identifier">compare_selector</span><span class="special"><></span> <span class="identifier">compareS</span><span class="special">;</span>
+<span class="special">}}</span>  <span class="comment">// namespace boost::tree_node</span>
+</pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.compare_selector.description"></a><a class="link" href="compare_selector.html#tree_node.reference.compare_selector.description" title="Description">Description</a>
+</h4></div></div></div>
+<p>
+          Let <code class="computeroutput"><span class="identifier">Node</span></code> be a (possibly
+          <code class="computeroutput"><span class="keyword">const</span></code>-qualified) <a class="link" href="../concepts/tree_node.html" title="Tree Node"><span class="bold"><strong>Tree Node</strong></span></a> model.
+        </p>
+<p>
+          Let <code class="computeroutput"><span class="identifier">NItr</span></code> be the pointer
+          or iterator type of <code class="computeroutput"><span class="identifier">Node</span></code>.
+        </p>
+<p>
+          Let <code class="computeroutput"><span class="identifier">F</span></code> be a model of <a href="http://www.sgi.com/tech/stl/BinaryPredicate.html" target="_top"><span class="bold"><strong>Binary
+          Predicate</strong></span></a> that accepts <code class="literal"><a class="link" href="at_key.html#tree_node.reference.at_key.result_of" title="Return Type Metafunction Synopsis">tree_node::result_of::at_key</a><Node,Key>::type</code>
+          for both its arguments.
+        </p>
+<p>
+          Given the following:
+        </p>
+<pre class="programlisting"><span class="keyword">typedef</span> boost::mpl::apply_wrap1<span class="special"><</span><span class="identifier">compare_selector</span><span class="special"><</span><span class="identifier">Key</span><span class="special">>,</span><span class="identifier">NItr</span><span class="special">>::</span><span class="identifier">type</span> <span class="identifier">G</span><span class="special">;</span>
+
+<span class="identifier">F</span> <span class="identifier">f</span><span class="special">;</span>
+<span class="identifier">NItr</span> <span class="identifier">x</span><span class="special">,</span> <span class="identifier">y</span><span class="special">;</span>
+<span class="identifier">G</span> <span class="identifier">g</span><span class="special">(</span><span class="identifier">f</span><span class="special">);</span>
+</pre>
+<p>
+          The type <code class="computeroutput"><span class="identifier">G</span></code> is a model of
+          Adaptable Binary Predicate whose first and
+          second arguments are both of type <code class="computeroutput"><span class="identifier">NItr</span></code>.
+          The expression <code class="computeroutput"><span class="identifier">g</span><span class="special">(</span><span class="identifier">x</span><span class="special">,</span> <span class="identifier">y</span><span class="special">)</span></code> is equivalent to <code class="computeroutput"><span class="identifier">f</span><span class="special">(</span><span class="identifier">get</span><span class="special">(*</span><span class="identifier">x</span><span class="special">,</span>
+          <span class="identifier">Key</span><span class="special">()),</span>
+          <span class="identifier">get</span><span class="special">(*</span><span class="identifier">y</span><span class="special">,</span> <span class="identifier">Key</span><span class="special">()))</span></code> because the type <code class="computeroutput"><span class="identifier">G</span></code>
+          defines a conversion constructor that allows <code class="computeroutput"><span class="identifier">g</span></code>
+          to store the function <code class="computeroutput"><span class="identifier">f</span></code>.
+        </p>
+<p>
+          This metafunction class is itself most useful as a <code class="computeroutput"><span class="identifier">boost</span><span class="special">::</span><span class="identifier">compare_selector</span></code>
+          template argument to boost::std_heap_selector or to one of
+          the Boost.Heap
+          selector types that are offered by Boost.ContainerGen and are to be used in
+          turn by <a class="link" href="breadth_first_iterator.html" title="breadth_first_iterator<Node,Selector>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">breadth_first_iterator</span></code></a> or <a class="link" href="breadth_first_desc_iter.html" title="breadth_first_descendant_iterator<Node,Selector>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">breadth_first_descendant_iterator</span></code></a>
+          when order by data matters.
+        </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.compare_selector.definition"></a><a class="link" href="compare_selector.html#tree_node.reference.compare_selector.definition" title="Where defined">Where
+        defined</a>
+</h4></div></div></div>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span>boost/tree_node/selector/compare.hpp<span class="special">></span>
+</pre>
+<p>
+          Forward-declared:
+        </p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span>boost/tree_node/selector/compare_fwd.hpp<span class="special">></span>
+</pre>
+<p>
+          To register under Boost.Typeof:
+        </p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span>boost/typeof/boost/tree_node/selector/compare.hpp<span class="special">></span>
+</pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.compare_selector.tpl_param"></a><a class="link" href="compare_selector.html#tree_node.reference.compare_selector.tpl_param" title="Template Parameters">Template
+        Parameters</a>
+</h4></div></div></div>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+                  <p>
+                    Parameter
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Description
+                  </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 template argument type used to access the data by which the
+                    return type of this metafunction class will compare <a class="link" href="../concepts/tree_node.html" title="Tree Node"><span class="bold"><strong>Tree Node</strong></span></a> objects.
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <a class="link" href="data_key.html" title="data_key"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">data_key</span></code></a>
+                  </p>
+                </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.compare_selector.model_of"></a><a class="link" href="compare_selector.html#tree_node.reference.compare_selector.model_of" title="Model of">Model
+        of</a>
+</h4></div></div></div>
+<p>
+          Unary Metafunction Class
+        </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.compare_selector.rt_members"></a><a class="link" href="compare_selector.html#tree_node.reference.compare_selector.rt_members" title="Return Type Members">Return
+        Type 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>
+<th>
+                  <p>
+                    Type requirements
+                  </p>
+                </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+                  <p>
+                    Result type
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">typedef</span> <span class="keyword">bool</span> <span class="identifier">result_type</span><span class="special">;</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Defined by the Adaptable Binary Predicate concept.
+                  </p>
+                </td>
+<td>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    First argument type
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">typedef</span> <span class="identifier">NItr</span> <span class="identifier">first_argument_type</span><span class="special">;</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Defined by the Adaptable Binary Predicate concept.
+                  </p>
+                </td>
+<td>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Second argument type
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">typedef</span> <span class="identifier">NItr</span> <span class="identifier">second_argument_type</span><span class="special">;</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Defined by the Adaptable Binary Predicate concept.
+                  </p>
+                </td>
+<td>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Default constructor
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">type</span><span class="special">();</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Stores an instance of type <code class="literal">std::less<<a class="link" href="at_key.html#tree_node.reference.at_key.result_of" title="Return Type Metafunction Synopsis">tree_node::result_of::at_key</a><Node,Key>::type></code>
+                    that the function call operator will use to compare <code class="computeroutput"><span class="identifier">Node</span></code> data.
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="literal"><a class="link" href="at_key.html#tree_node.reference.at_key.result_of" title="Return Type Metafunction Synopsis">tree_node::result_of::at_key</a><Node,Key>::type</code>
+                    must model the Less-Than Comparable concept.
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Constructor from comparator
+                  </p>
+                </td>
+<td>
+<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">Function</span><span class="special">></span>
+<span class="identifier">type</span><span class="special">(</span><span class="identifier">Function</span> <span class="keyword">const</span><span class="special">&);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Stores the specified comparator that the function call operator
+                    will use to compare <code class="computeroutput"><span class="identifier">Node</span></code>
+                    data.
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">Function</span></code> must
+                    be a model of Binary Predicate that accepts
+                    <code class="literal"><a class="link" href="at_key.html#tree_node.reference.at_key.result_of" title="Return Type Metafunction Synopsis">tree_node::result_of::at_key</a><Node,Key>::type</code>
+                    for both its arguments.
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Copy constructor
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">type</span><span class="special">(</span><span class="identifier">type</span> <span class="keyword">const</span><span class="special">&);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Defined by the Copy Constructible concept.
+                  </p>
+                </td>
+<td>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Assignment operator
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">type</span><span class="special">&</span> <span class="keyword">operator</span><span class="special">=(</span><span class="identifier">type</span> <span class="keyword">const</span><span class="special">&);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Defined by the Assignable concept.
+                  </p>
+                </td>
+<td>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Function call operator
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">result_type</span>
+    <span class="keyword">operator</span><span class="special">()(</span>
+        <span class="identifier">first_argument_type</span> <span class="identifier">x</span>
+      <span class="special">,</span> <span class="identifier">second_argument_type</span> <span class="identifier">y</span>
+    <span class="special">)</span> <span class="keyword">const</span><span class="special">;</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Equivalent to <code class="computeroutput"><span class="identifier">f</span><span class="special">(</span><span class="identifier">get</span><span class="special">(*</span><span class="identifier">x</span><span class="special">,</span> <span class="identifier">Key</span><span class="special">()),</span> <span class="identifier">get</span><span class="special">(*</span><span class="identifier">y</span><span class="special">,</span> <span class="identifier">Key</span><span class="special">()))</span></code>, where <code class="computeroutput"><span class="identifier">f</span></code>
+                    is the function that was passed in to the constructor, or an
+                    instance of type <code class="literal">std::less<<a class="link" href="at_key.html#tree_node.reference.at_key.result_of" title="Return Type Metafunction Synopsis">tree_node::result_of::at_key</a><Node,Key>::type></code>
+                    if this function object was default-constructed. Required by
+                    the Adaptable Binary Predicate 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-2013 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_desc_iter.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="traversal_state.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/container_derived_body.html
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/container_derived_body.html	2013-07-07 14:52:52 EDT (Sun, 07 Jul 2013)	(r84977)
@@ -0,0 +1,115 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>BOOST_TREE_NODE_CONTAINER_DERIVED_BODY</title>
+<link rel="stylesheet" href="http://www.boost.org/doc/libs/release/doc/src/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.77.1">
+<link rel="home" href="../../index.html" title="Chapter 1. tree_node 0.5">
+<link rel="up" href="../reference.html" title="Reference">
+<link rel="prev" href="copyable_and_movable.html" title="BOOST_TREE_NODE_COPYABLE_AND_MOVABLE">
+<link rel="next" href="assoc_cont_derived_body.html" title="BOOST_TREE_NODE_ASSOCIATIVE_CONTAINER_DERIVED_BODY">
+</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="copyable_and_movable.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="assoc_cont_derived_body.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="tree_node.reference.container_derived_body"></a><a class="link" href="container_derived_body.html" title="BOOST_TREE_NODE_CONTAINER_DERIVED_BODY"><code class="computeroutput"><span class="identifier">BOOST_TREE_NODE_CONTAINER_DERIVED_BODY</span></code></a>
+</h3></div></div></div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.container_derived_body.synopsis"></a><a class="link" href="container_derived_body.html#tree_node.reference.container_derived_body.synopsis" title="Synopsis">Synopsis</a>
+</h4></div></div></div>
+<pre class="programlisting"><span class="preprocessor">#define</span> <span class="identifier">BOOST_TREE_NODE_CONTAINER_DERIVED_BODY</span><span class="special">(</span><span class="identifier">Derived</span><span class="special">,</span> <span class="identifier">Base</span><span class="special">)</span>                <span class="special">\</span>
+        <span class="identifier">BOOST_TREE_NODE_CONTAINER_DERIVED_IMPL</span><span class="special">(</span><span class="identifier">Derived</span><span class="special">,</span> <span class="identifier">Base</span><span class="special">)</span>                <span class="special">\</span>
+        <span class="keyword">inline</span> <span class="identifier">Derived</span><span class="special">(</span><span class="identifier">Derived</span><span class="special">&&</span> <span class="identifier">source</span><span class="special">)</span>                                     <span class="special">\</span>
+          <span class="special">:</span> <span class="identifier">Base</span><span class="special">(</span><span class="keyword">static_cast</span><span class="special"><</span><span class="identifier">Base</span><span class="special">&&>(</span><span class="identifier">source</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="keyword">inline</span> <span class="identifier">Derived</span><span class="special">(</span><span class="identifier">Derived</span><span class="special">&&</span> <span class="identifier">source</span><span class="special">,</span> <span class="identifier">allocator_type</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">a</span><span class="special">)</span>            <span class="special">\</span>
+          <span class="special">:</span> <span class="identifier">Base</span><span class="special">(</span><span class="keyword">static_cast</span><span class="special"><</span><span class="identifier">Base</span><span class="special">&&>(</span><span class="identifier">source</span><span class="special">),</span> <span class="identifier">a</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="keyword">inline</span> <span class="identifier">Derived</span><span class="special">&</span> <span class="keyword">operator</span><span class="special">=(</span><span class="identifier">Derived</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="special">{</span>                                                                    <span class="special">\</span>
+            <span class="keyword">if</span> <span class="special">(</span><span class="keyword">this</span> <span class="special">!=</span> <span class="special">&</span><span class="identifier">copy</span><span class="special">)</span>                                               <span class="special">\</span>
+            <span class="special">{</span>                                                                <span class="special">\</span>
+                <span class="identifier">Base</span><span class="special">::</span><span class="keyword">operator</span><span class="special">=(</span><span class="keyword">static_cast</span><span class="special"><</span><span class="identifier">Base</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="special">}</span>                                                                <span class="special">\</span>
+            <span class="keyword">return</span> <span class="special">*</span><span class="keyword">this</span><span class="special">;</span>                                                    <span class="special">\</span>
+        <span class="special">}</span>                                                                    <span class="special">\</span>
+        <span class="keyword">inline</span> <span class="identifier">Derived</span><span class="special">&</span> <span class="keyword">operator</span><span class="special">=(</span><span class="identifier">Derived</span><span class="special">&&</span> <span class="identifier">source</span><span class="special">)</span>                          <span class="special">\</span>
+        <span class="special">{</span>                                                                    <span class="special">\</span>
+            <span class="keyword">if</span> <span class="special">(</span><span class="keyword">this</span> <span class="special">!=</span> <span class="special">&</span><span class="keyword">static_cast</span><span class="special"><</span><span class="identifier">Derived</span><span class="special">&>(</span><span class="identifier">source</span><span class="special">))</span>                      <span class="special">\</span>
+            <span class="special">{</span>                                                                <span class="special">\</span>
+                <span class="identifier">Base</span><span class="special">::</span><span class="keyword">operator</span><span class="special">=(</span><span class="keyword">static_cast</span><span class="special"><</span><span class="identifier">Derived</span><span class="special">&&>(</span><span class="identifier">source</span><span class="special">));</span>             <span class="special">\</span>
+            <span class="special">}</span>                                                                <span class="special">\</span>
+            <span class="keyword">return</span> <span class="special">*</span><span class="keyword">this</span><span class="special">;</span>                                                    <span class="special">\</span>
+        <span class="special">}</span>                                                                    <span class="special">\</span>
+</pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.container_derived_body.description"></a><a class="link" href="container_derived_body.html#tree_node.reference.container_derived_body.description" title="Description">Description</a>
+</h4></div></div></div>
+<p>
+          Meant to be used in the <code class="computeroutput"><span class="keyword">public</span></code>
+          scope of a Container model that inherits from another.
+        </p>
+<p>
+          This macro defines the type definitions; the default, copy, and move constructors;
+          and the copy and move assignment operators necessary for the <code class="computeroutput"><span class="identifier">Derived</span></code> class to model the Default Constructible, Copy Constructible, Assignable, Movable, and Container concepts.
+        </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.container_derived_body.usage"></a><a class="link" href="container_derived_body.html#tree_node.reference.container_derived_body.usage" title="Usage">Usage</a>
+</h4></div></div></div>
+<pre class="programlisting"><span class="identifier">BOOST_TREE_NODE_CONTAINER_DERIVED_BODY</span><span class="special">(</span><span class="identifier">Derived</span><span class="special">,</span> <span class="identifier">Base</span><span class="special">)</span>
+</pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.container_derived_body.arguments"></a><a class="link" href="container_derived_body.html#tree_node.reference.container_derived_body.arguments" title="Arguments">Arguments</a>
+</h4></div></div></div>
+<div class="variablelist">
+<p class="title"><b>Notation</b></p>
+<dl class="variablelist">
+<dt><span class="term"><code class="computeroutput"><span class="identifier">Derived</span></code></span></dt>
+<dd><p>
+                The name of the enclosing type.
+              </p></dd>
+<dt><span class="term"><code class="computeroutput"><span class="identifier">Base</span></code></span></dt>
+<dd><p>
+                The name of the type from which <code class="computeroutput"><span class="identifier">Derived</span></code>
+                inherits.
+              </p></dd>
+</dl>
+</div>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.container_derived_body.definition"></a><a class="link" href="container_derived_body.html#tree_node.reference.container_derived_body.definition" title="Where defined">Where
+        defined</a>
+</h4></div></div></div>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span>boost/tree_node/preprocessor.hpp<span class="special">></span>
+</pre>
+</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-2013 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="copyable_and_movable.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="assoc_cont_derived_body.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/copyable_and_movable.html
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/copyable_and_movable.html	2013-07-07 14:52:52 EDT (Sun, 07 Jul 2013)	(r84977)
@@ -0,0 +1,146 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>BOOST_TREE_NODE_COPYABLE_AND_MOVABLE</title>
+<link rel="stylesheet" href="http://www.boost.org/doc/libs/release/doc/src/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.77.1">
+<link rel="home" href="../../index.html" title="Chapter 1. tree_node 0.5">
+<link rel="up" href="../reference.html" title="Reference">
+<link rel="prev" href="value_at_key.html" title="result_of::value_at_key<Node,Key>">
+<link rel="next" href="container_derived_body.html" title="BOOST_TREE_NODE_CONTAINER_DERIVED_BODY">
+</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="value_at_key.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="container_derived_body.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="tree_node.reference.copyable_and_movable"></a><a class="link" href="copyable_and_movable.html" title="BOOST_TREE_NODE_COPYABLE_AND_MOVABLE"><code class="computeroutput"><span class="identifier">BOOST_TREE_NODE_COPYABLE_AND_MOVABLE</span></code></a>
+</h3></div></div></div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.copyable_and_movable.synopsis"></a><a class="link" href="copyable_and_movable.html#tree_node.reference.copyable_and_movable.synopsis" title="Synopsis">Synopsis</a>
+</h4></div></div></div>
+<pre class="programlisting"><span class="preprocessor">#define</span> <span class="identifier">BOOST_TREE_NODE_COPY_CONSTRUCTIBLE</span><span class="special">(</span><span class="identifier">Derived</span><span class="special">,</span> <span class="identifier">Base</span><span class="special">)</span>                    <span class="special">\</span>
+        <span class="keyword">inline</span> <span class="identifier">Derived</span><span class="special">(</span><span class="identifier">Derived</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">Base</span><span class="special">(</span><span class="identifier">copy</span><span class="special">)</span>                     <span class="special">\</span>
+        <span class="special">{</span>                                                                    <span class="special">\</span>
+            <span class="identifier">Base</span><span class="special">::</span><span class="identifier">clone_descendants</span><span class="special">(</span><span class="identifier">copy</span><span class="special">);</span>                                   <span class="special">\</span>
+        <span class="special">}</span>                                                                    <span class="special">\</span>
+        <span class="keyword">inline</span> <span class="identifier">Derived</span><span class="special">(</span>                                                      <span class="special">\</span>
+            <span class="identifier">Derived</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="keyword">typename</span> <span class="identifier">traits</span><span class="special">::</span><span class="identifier">allocator_reference</span> <span class="identifier">a</span>                           <span class="special">\</span>
+        <span class="special">)</span> <span class="special">:</span> <span class="identifier">Base</span><span class="special">(</span><span class="identifier">copy</span><span class="special">,</span> <span class="identifier">a</span><span class="special">)</span>                                                    <span class="special">\</span>
+        <span class="special">{</span>                                                                    <span class="special">\</span>
+            <span class="identifier">Base</span><span class="special">::</span><span class="identifier">clone_descendants</span><span class="special">(</span><span class="identifier">copy</span><span class="special">);</span>                                   <span class="special">\</span>
+        <span class="special">}</span>                                                                    <span class="special">\</span>
+        <span class="keyword">inline</span> <span class="identifier">Derived</span><span class="special">(</span><span class="identifier">Derived</span><span class="special">&</span> <span class="identifier">copy</span><span class="special">)</span>                                        <span class="special">\</span>
+          <span class="special">:</span> <span class="identifier">Base</span><span class="special">(</span><span class="keyword">const_cast</span><span class="special"><</span><span class="identifier">Derived</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="special">{</span>                                                                    <span class="special">\</span>
+            <span class="identifier">Base</span><span class="special">::</span><span class="identifier">clone_descendants</span><span class="special">(</span><span class="identifier">copy</span><span class="special">);</span>                                   <span class="special">\</span>
+        <span class="special">}</span>                                                                    <span class="special">\</span>
+        <span class="keyword">inline</span> <span class="identifier">Derived</span><span class="special">(</span>                                                      <span class="special">\</span>
+            <span class="identifier">Derived</span><span class="special">&</span> <span class="identifier">copy</span>                                                    <span class="special">\</span>
+          <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">traits</span><span class="special">::</span><span class="identifier">allocator_reference</span> <span class="identifier">a</span>                           <span class="special">\</span>
+        <span class="special">)</span> <span class="special">:</span> <span class="identifier">Base</span><span class="special">(</span><span class="keyword">const_cast</span><span class="special"><</span><span class="identifier">Derived</span> <span class="keyword">const</span><span class="special">&>(</span><span class="identifier">copy</span><span class="special">),</span> <span class="identifier">a</span><span class="special">)</span>                        <span class="special">\</span>
+        <span class="special">{</span>                                                                    <span class="special">\</span>
+            <span class="identifier">Base</span><span class="special">::</span><span class="identifier">clone_descendants</span><span class="special">(</span><span class="identifier">copy</span><span class="special">);</span>                                   <span class="special">\</span>
+        <span class="special">}</span>                                                                    <span class="special">\</span>
+</pre>
+<pre class="programlisting"><span class="preprocessor">#define</span> <span class="identifier">BOOST_TREE_NODE_COPYABLE_AND_MOVABLE</span><span class="special">(</span><span class="identifier">Derived</span><span class="special">,</span> <span class="identifier">Base</span><span class="special">)</span>                  <span class="special">\</span>
+        <span class="identifier">BOOST_TREE_NODE_COPY_CONSTRUCTIBLE</span><span class="special">(</span><span class="identifier">Derived</span><span class="special">,</span> <span class="identifier">Base</span><span class="special">)</span>                    <span class="special">\</span>
+        <span class="keyword">inline</span> <span class="identifier">Derived</span><span class="special">(</span><span class="identifier">Derived</span><span class="special">&&</span> <span class="identifier">source</span><span class="special">)</span>                                     <span class="special">\</span>
+          <span class="special">:</span> <span class="identifier">Base</span><span class="special">(</span><span class="keyword">static_cast</span><span class="special"><</span><span class="identifier">Derived</span><span class="special">&&>(</span><span class="identifier">source</span><span class="special">))</span>                             <span class="special">\</span>
+        <span class="special">{</span>                                                                    <span class="special">\</span>
+            <span class="identifier">Base</span><span class="special">::</span><span class="identifier">move_descendants</span><span class="special">(</span><span class="keyword">static_cast</span><span class="special"><</span><span class="identifier">Derived</span><span class="special">&&>(</span><span class="identifier">source</span><span class="special">));</span>          <span class="special">\</span>
+        <span class="special">}</span>                                                                    <span class="special">\</span>
+        <span class="keyword">inline</span> <span class="identifier">Derived</span><span class="special">(</span>                                                      <span class="special">\</span>
+            <span class="identifier">Derived</span><span class="special">&&</span> <span class="identifier">source</span>                                                 <span class="special">\</span>
+          <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">traits</span><span class="special">::</span><span class="identifier">allocator_reference</span> <span class="identifier">a</span>                           <span class="special">\</span>
+        <span class="special">)</span> <span class="special">:</span> <span class="identifier">Base</span><span class="special">(</span><span class="keyword">static_cast</span><span class="special"><</span><span class="identifier">Derived</span><span class="special">&&>(</span><span class="identifier">source</span><span class="special">),</span> <span class="identifier">a</span><span class="special">)</span>                          <span class="special">\</span>
+        <span class="special">{</span>                                                                    <span class="special">\</span>
+            <span class="identifier">Base</span><span class="special">::</span><span class="identifier">move_descendants</span><span class="special">(</span><span class="keyword">static_cast</span><span class="special"><</span><span class="identifier">Derived</span><span class="special">&&>(</span><span class="identifier">source</span><span class="special">));</span>          <span class="special">\</span>
+        <span class="special">}</span>                                                                    <span class="special">\</span>
+        <span class="keyword">inline</span> <span class="identifier">Derived</span><span class="special">&</span> <span class="keyword">operator</span><span class="special">=(</span><span class="identifier">Derived</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="special">{</span>                                                                    <span class="special">\</span>
+            <span class="keyword">if</span> <span class="special">(</span><span class="keyword">this</span> <span class="special">!=</span> <span class="special">&</span><span class="identifier">copy</span><span class="special">)</span>                                               <span class="special">\</span>
+            <span class="special">{</span>                                                                <span class="special">\</span>
+                <span class="identifier">Base</span><span class="special">::</span><span class="identifier">copy_assign</span><span class="special">(</span><span class="identifier">copy</span><span class="special">);</span>                                     <span class="special">\</span>
+                <span class="identifier">Base</span><span class="special">::</span><span class="identifier">on_post_assign</span><span class="special">();</span>                                      <span class="special">\</span>
+            <span class="special">}</span>                                                                <span class="special">\</span>
+            <span class="keyword">return</span> <span class="special">*</span><span class="keyword">this</span><span class="special">;</span>                                                    <span class="special">\</span>
+        <span class="special">}</span>                                                                    <span class="special">\</span>
+        <span class="keyword">inline</span> <span class="identifier">Derived</span><span class="special">&</span> <span class="keyword">operator</span><span class="special">=(</span><span class="identifier">Derived</span><span class="special">&&</span> <span class="identifier">source</span><span class="special">)</span>                          <span class="special">\</span>
+        <span class="special">{</span>                                                                    <span class="special">\</span>
+            <span class="keyword">if</span> <span class="special">(</span><span class="keyword">this</span> <span class="special">!=</span> <span class="special">&</span><span class="keyword">static_cast</span><span class="special"><</span><span class="identifier">Derived</span><span class="special">&>(</span><span class="identifier">source</span><span class="special">))</span>                      <span class="special">\</span>
+            <span class="special">{</span>                                                                <span class="special">\</span>
+                <span class="identifier">Base</span><span class="special">::</span><span class="identifier">move_assign</span><span class="special">(</span><span class="keyword">static_cast</span><span class="special"><</span><span class="identifier">Derived</span><span class="special">&&>(</span><span class="identifier">source</span><span class="special">));</span>           <span class="special">\</span>
+                <span class="identifier">Base</span><span class="special">::</span><span class="identifier">on_post_assign</span><span class="special">();</span>                                      <span class="special">\</span>
+            <span class="special">}</span>                                                                <span class="special">\</span>
+            <span class="keyword">return</span> <span class="special">*</span><span class="keyword">this</span><span class="special">;</span>                                                    <span class="special">\</span>
+        <span class="special">}</span>                                                                    <span class="special">\</span>
+</pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.copyable_and_movable.description"></a><a class="link" href="copyable_and_movable.html#tree_node.reference.copyable_and_movable.description" title="Description">Description</a>
+</h4></div></div></div>
+<p>
+          Meant to be used in the <code class="computeroutput"><span class="keyword">public</span></code>
+          scope of a <a class="link" href="../concepts/tree_node.html" title="Tree Node"><span class="bold"><strong>Tree
+          Node</strong></span></a> model that inherits from a <a class="link" href="../concepts/base_tree_node.html" title="Base Tree Node"><span class="bold"><strong>Base Tree Node</strong></span></a>, this macro defines the copy
+          and move constructors and the copy and move assignment operators necessary
+          for the <code class="computeroutput"><span class="identifier">Derived</span></code> class to
+          model the <a class="link" href="../concepts/copyable_tree_node.html" title="Copyable Tree Node"><span class="bold"><strong>Copyable Tree Node</strong></span></a>, <a class="link" href="../concepts/movable_tree_node.html" title="Movable Tree Node"><span class="bold"><strong>Movable Tree Node</strong></span></a>, Assignable, and Movable concepts.
+        </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.copyable_and_movable.usage"></a><a class="link" href="copyable_and_movable.html#tree_node.reference.copyable_and_movable.usage" title="Usage">Usage</a>
+</h4></div></div></div>
+<pre class="programlisting"><span class="identifier">BOOST_TREE_NODE_COPYABLE_AND_MOVABLE</span><span class="special">(</span><span class="identifier">Derived</span><span class="special">,</span> <span class="identifier">Base</span><span class="special">)</span>
+</pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.copyable_and_movable.arguments"></a><a class="link" href="copyable_and_movable.html#tree_node.reference.copyable_and_movable.arguments" title="Arguments">Arguments</a>
+</h4></div></div></div>
+<div class="variablelist">
+<p class="title"><b>Notation</b></p>
+<dl class="variablelist">
+<dt><span class="term"><code class="computeroutput"><span class="identifier">Derived</span></code></span></dt>
+<dd><p>
+                The name of the enclosing type.
+              </p></dd>
+<dt><span class="term"><code class="computeroutput"><span class="identifier">Base</span></code></span></dt>
+<dd><p>
+                The name of the type from which <code class="computeroutput"><span class="identifier">Derived</span></code>
+                inherits.
+              </p></dd>
+</dl>
+</div>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.copyable_and_movable.definition"></a><a class="link" href="copyable_and_movable.html#tree_node.reference.copyable_and_movable.definition" title="Where defined">Where
+        defined</a>
+</h4></div></div></div>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span>boost/tree_node/preprocessor.hpp<span class="special">></span>
+</pre>
+</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-2013 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="value_at_key.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="container_derived_body.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/count_key.html
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/count_key.html	2013-07-07 14:52:52 EDT (Sun, 07 Jul 2013)	(r84977)
@@ -0,0 +1,71 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>count_key</title>
+<link rel="stylesheet" href="http://www.boost.org/doc/libs/release/doc/src/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.77.1">
+<link rel="home" href="../../index.html" title="Chapter 1. tree_node 0.5">
+<link rel="up" href="../reference.html" title="Reference">
+<link rel="prev" href="accumulation_key.html" title="accumulation_key">
+<link rel="next" href="height_key.html" title="height_key">
+</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="accumulation_key.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="height_key.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="tree_node.reference.count_key"></a><a class="link" href="count_key.html" title="count_key"><code class="computeroutput"><span class="identifier">count_key</span></code></a>
+</h3></div></div></div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.count_key.synopsis"></a><a class="link" href="count_key.html#tree_node.reference.count_key.synopsis" title="Synopsis">Synopsis</a>
+</h4></div></div></div>
+<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">struct</span> <span class="identifier">count_key</span>
+    <span class="special">{</span>
+    <span class="special">};</span>
+<span class="special">}}</span>  <span class="comment">// namespace boost::tree_node</span>
+</pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.count_key.description"></a><a class="link" href="count_key.html#tree_node.reference.count_key.description" title="Description">Description</a>
+</h4></div></div></div>
+<p>
+          Use this type to access the number of each <a class="link" href="../concepts/tree_node.html" title="Tree Node"><span class="bold"><strong>Tree Node</strong></span></a> object plus its descendants, the
+          sum of which is known as the <span class="bold"><strong>count</strong></span> of
+          the node. The <a class="link" href="../concepts/tree_node.html" title="Tree Node"><span class="bold"><strong>Tree
+          Node</strong></span></a> type must ultimately inherit from <a class="link" href="with_count_base.html" title="with_count_base<Derived,BaseGenerator,T1,T2,Count>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">with_count_base</span></code></a>.
+        </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.count_key.definition"></a><a class="link" href="count_key.html#tree_node.reference.count_key.definition" title="Where defined">Where defined</a>
+</h4></div></div></div>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span>boost/tree_node/key/count.hpp<span class="special">></span>
+</pre>
+<p>
+          To register under Boost.Typeof:
+        </p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span>boost/typeof/boost/tree_node/key/count.hpp<span class="special">></span>
+</pre>
+</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-2013 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="accumulation_key.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="height_key.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/data_key.html
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/data_key.html	2013-07-07 14:52:52 EDT (Sun, 07 Jul 2013)	(r84977)
@@ -0,0 +1,68 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>data_key</title>
+<link rel="stylesheet" href="http://www.boost.org/doc/libs/release/doc/src/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.77.1">
+<link rel="home" href="../../index.html" title="Chapter 1. tree_node 0.5">
+<link rel="up" href="../reference.html" title="Reference">
+<link rel="prev" href="traversal_state.html" title="traversal_state">
+<link rel="next" href="accumulation_key.html" title="accumulation_key">
+</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="traversal_state.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="accumulation_key.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="tree_node.reference.data_key"></a><a class="link" href="data_key.html" title="data_key"><code class="computeroutput"><span class="identifier">data_key</span></code></a>
+</h3></div></div></div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.data_key.synopsis"></a><a class="link" href="data_key.html#tree_node.reference.data_key.synopsis" title="Synopsis">Synopsis</a>
+</h4></div></div></div>
+<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">struct</span> <span class="identifier">data_key</span>
+    <span class="special">{</span>
+    <span class="special">};</span>
+<span class="special">}}</span>  <span class="comment">// namespace boost::tree_node</span>
+</pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.data_key.description"></a><a class="link" href="data_key.html#tree_node.reference.data_key.description" title="Description">Description</a>
+</h4></div></div></div>
+<p>
+          Use this type to access the user data stored in <a class="link" href="../concepts/tree_node.html" title="Tree Node"><span class="bold"><strong>Tree Node</strong></span></a> objects.
+        </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.data_key.definition"></a><a class="link" href="data_key.html#tree_node.reference.data_key.definition" title="Where defined">Where defined</a>
+</h4></div></div></div>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span>boost/tree_node/key/data.hpp<span class="special">></span>
+</pre>
+<p>
+          To register under Boost.Typeof:
+        </p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span>boost/typeof/boost/tree_node/key/data.hpp<span class="special">></span>
+</pre>
+</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-2013 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="traversal_state.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="accumulation_key.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/depth_first_desc_iter.html
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/depth_first_desc_iter.html	2013-07-07 14:52:52 EDT (Sun, 07 Jul 2013)	(r84977)
@@ -0,0 +1,746 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>depth_first_descendant_iterator<Node,IsReverse></title>
+<link rel="stylesheet" href="http://www.boost.org/doc/libs/release/doc/src/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.77.1">
+<link rel="home" href="../../index.html" title="Chapter 1. tree_node 0.5">
+<link rel="up" href="../reference.html" title="Reference">
+<link rel="prev" href="depth_first_iterator.html" title="depth_first_iterator<Node,IsReverse>">
+<link rel="next" href="compare_selector.html" title="compare_selector<Key>">
+</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="http://www.boost.org/doc/libs/release/doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="compare_selector.html"><img src="http://www.boost.org/doc/libs/release/doc/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_desc_iter"></a><a class="link" href="depth_first_desc_iter.html" title="depth_first_descendant_iterator<Node,IsReverse>"><code class="computeroutput"><span class="identifier">depth_first_descendant_iterator</span><span class="special"><</span><span class="identifier">Node</span><span class="special">,</span><span class="identifier">IsReverse</span><span class="special">></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_desc_iter.synopsis"></a><a class="link" href="depth_first_desc_iter.html#tree_node.reference.depth_first_desc_iter.synopsis" title="Synopsis">Synopsis</a>
+</h4></div></div></div>
+<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">Node</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">IsReverse</span> <span class="special">=</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">false_</span><span class="special">></span>
+    <span class="keyword">class</span> <span class="identifier">depth_first_descendant_iterator</span>
+      <span class="special">:</span> <span class="keyword">public</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">iterator_adaptor</span><span class="special"><</span>
+            <span class="identifier">depth_first_descendant_iterator</span><span class="special"><</span><span class="identifier">Node</span><span class="special">,</span><span class="identifier">IsReverse</span><span class="special">></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">mpl</span><span class="special">::</span><span class="identifier">eval_if</span><span class="special"><</span>
+                <span class="identifier">IsReverse</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">if_</span><span class="special"><</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">is_const</span><span class="special"><</span><span class="identifier">Node</span><span class="special">></span>
+                  <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Node</span><span class="special">::</span><span class="identifier">const_reverse_iterator</span>
+                  <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Node</span><span class="special">::</span><span class="identifier">reverse_iterator</span>
+                <span class="special">></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">if_</span><span class="special"><</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">is_const</span><span class="special"><</span><span class="identifier">Node</span><span class="special">></span>
+                  <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Node</span><span class="special">::</span><span class="identifier">const_iterator</span>
+                  <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Node</span><span class="special">::</span><span class="identifier">iterator</span>
+                <span class="special">></span>
+            <span class="special">>::</span><span class="identifier">type</span>
+          <span class="special">,</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">use_default</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">mpl</span><span class="special">::</span><span class="identifier">if_</span><span class="special"><</span>
+                <span class="comment">// Node [const] has bidirectional iterators</span>
+              <span class="special">,</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">bidirectional_traversal_tag</span>
+              <span class="special">,</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">forward_traversal_tag</span>
+            <span class="special">>::</span><span class="identifier">type</span>
+        <span class="special">></span>
+    <span class="special">{</span>
+        <span class="keyword">struct</span> <span class="identifier">enabler</span>
+        <span class="special">{</span>
+        <span class="special">};</span>
+
+     <span class="keyword">public</span><span class="special">:</span>
+        <span class="keyword">explicit</span> <span class="identifier">depth_first_descendant_iterator</span><span class="special">(</span>
+            <span class="identifier">Node</span><span class="special">*</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">node_ptr</span> <span class="special">=</span> <span class="keyword">nullptr</span>
+        <span class="special">);</span>
+
+        <span class="keyword">explicit</span> <span class="identifier">depth_first_descendant_iterator</span><span class="special">(</span><span class="identifier">Node</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">N</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">I</span><span class="special">></span>
+        <span class="identifier">depth_first_descendant_iterator</span><span class="special">(</span>
+            <span class="identifier">depth_first_descendant_iterator</span><span class="special"><</span><span class="identifier">N</span><span class="special">,</span><span class="identifier">I</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="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="keyword">typename</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">if_</span><span class="special"><</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">is_convertible</span><span class="special"><</span><span class="identifier">N</span><span class="special">,</span><span class="identifier">Node</span><span class="special">></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">I</span><span class="special">,</span><span class="identifier">IsReverse</span><span class="special">></span>
+                  <span class="special">,</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">false_</span>
+                <span class="special">>::</span><span class="identifier">type</span>
+              <span class="special">,</span> <span class="identifier">enabler</span>
+            <span class="special">>::</span><span class="identifier">type</span> <span class="special">=</span> <span class="identifier">enabler</span><span class="special">()</span>
+        <span class="special">);</span>
+
+        <span class="keyword">operator</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">tree_node</span><span class="special">::</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>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.depth_first_desc_iter.description"></a><a class="link" href="depth_first_desc_iter.html#tree_node.reference.depth_first_desc_iter.description" title="Description">Description</a>
+</h4></div></div></div>
+<p>
+          This iterator traverses the descendants of the root node passed to its
+          constructor in depth-first fashion, e.g. given the following tree representation:
+        </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>
+          By default, this iterator will traverse the tree nodes in the following
+          order:
+        </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>
+          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 can also be used to traverse the tree nodes in reverse:
+        </p>
+<pre class="programlisting"><span class="identifier">B</span>  <span class="identifier">post_order_traversal</span>
+<span class="identifier">G</span>  <span class="identifier">post_order_traversal</span>
+<span class="identifier">G</span>  <span class="identifier">pre_order_traversal</span>
+<span class="identifier">F</span>  <span class="identifier">post_order_traversal</span>
+<span class="identifier">F</span>  <span class="identifier">pre_order_traversal</span>
+<span class="identifier">B</span>  <span class="identifier">pre_order_traversal</span>
+<span class="identifier">C</span>  <span class="identifier">post_order_traversal</span>
+<span class="identifier">E</span>  <span class="identifier">post_order_traversal</span>
+<span class="identifier">E</span>  <span class="identifier">pre_order_traversal</span>
+<span class="identifier">D</span>  <span class="identifier">post_order_traversal</span>
+<span class="identifier">D</span>  <span class="identifier">pre_order_traversal</span>
+<span class="identifier">C</span>  <span class="identifier">pre_order_traversal</span>
+</pre>
+<p>
+          This iterator is ideal for algorithms that need to perform both preprocessing
+          and postprocessing of a tree node, e.g. non-recursive copy constructors.
+        </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.depth_first_desc_iter.definition"></a><a class="link" href="depth_first_desc_iter.html#tree_node.reference.depth_first_desc_iter.definition" title="Where defined">Where
+        defined</a>
+</h4></div></div></div>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span>boost/tree_node/iterator/depth_first_descendant.hpp<span class="special">></span>
+</pre>
+<p>
+          To register under Boost.Typeof:
+        </p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span>boost/typeof/boost/tree_node/iterator/depth_first_descendant.hpp<span class="special">></span>
+</pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.depth_first_desc_iter.tpl_param"></a><a class="link" href="depth_first_desc_iter.html#tree_node.reference.depth_first_desc_iter.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">Node</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    The type of a tree node.
+                  </p>
+                </td>
+<td>
+                  <p>
+                    It must model the <a class="link" href="../concepts/tree_node.html" title="Tree Node"><span class="bold"><strong>Tree Node</strong></span></a> concept, but it can be
+                    <code class="computeroutput"><span class="keyword">const</span></code>-qualified.
+                  </p>
+                </td>
+<td>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">IsReverse</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Configures the <code class="computeroutput"><span class="identifier">depth_first_descendant_iterator</span></code>
+                    to traverse tree nodes in reverse depth-first fashion if equivalent
+                    to boost::mpl::true_; otherwise, the
+                    nodes will be traversed in depth-first fashion.
+                  </p>
+                </td>
+<td>
+                  <p>
+                    It must model the Boolean Integral Constant concept.
+                  </p>
+                </td>
+<td>
+                  <p>
+                    boost::mpl::false_
+                  </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_desc_iter.model_of"></a><a class="link" href="depth_first_desc_iter.html#tree_node.reference.depth_first_desc_iter.model_of" title="Model of">Model
+        of</a>
+</h4></div></div></div>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem"><p>
+              <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>
+            </p></li>
+<li class="listitem"><p>
+              Bidirectional Iterator
+            </p></li>
+<li class="listitem"><p>
+              Default Constructible
+            </p></li>
+<li class="listitem"><p>
+              <a href="http://www.boost.org/libs/utility/CopyConstructible.html" target="_top"><span class="bold"><strong>Copy
+              Constructible</strong></span></a>
+            </p></li>
+<li class="listitem"><p>
+              Assignable
+            </p></li>
+</ul></div>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.depth_first_desc_iter.members"></a><a class="link" href="depth_first_desc_iter.html#tree_node.reference.depth_first_desc_iter.members" title="Members">Members</a>
+</h4></div></div></div>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+                  <p>
+                    Name
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Expression
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Description
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Type requirements
+                  </p>
+                </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+                  <p>
+                    Value type
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">typedef</span> <span class="special">...</span> <span class="identifier">value_type</span><span class="special">;</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Defined by the <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> concept.
+                  </p>
+                </td>
+<td>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Reference type
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">typedef</span> <span class="special">...</span> <span class="identifier">reference</span><span class="special">;</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Defined by the Forward Iterator concept.
+                  </p>
+                </td>
+<td>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Pointer type
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">typedef</span> <span class="special">...</span> <span class="identifier">pointer</span><span class="special">;</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Defined by the Forward Iterator concept.
+                  </p>
+                </td>
+<td>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Distance type
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">typedef</span> <span class="special">...</span> <span class="identifier">difference_type</span><span class="special">;</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Defined by the Forward Iterator concept.
+                  </p>
+                </td>
+<td>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Iterator category
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">typedef</span> <span class="special">...</span> <span class="identifier">iterator_category</span><span class="special">;</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Defined by the Forward Iterator concept.
+                  </p>
+                </td>
+<td>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Default constructor
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">depth_first_descendant_iterator</span><span class="special">();</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Sets this iterator past-the-end. Required by the Default Constructible concept.
+                  </p>
+                </td>
+<td>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Constructor from node
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">depth_first_descendant_iterator</span><span class="special">(</span><span class="identifier">Node</span><span class="special">&);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Defined by the <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> concept.
+                  </p>
+                </td>
+<td>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Conversion constructor
+                  </p>
+                </td>
+<td>
+<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">N</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">I</span><span class="special">></span>
+<span class="identifier">depth_first_descendant_iterator</span><span class="special">(</span>
+    <span class="identifier">depth_first_descendant_iterator</span><span class="special"><</span><span class="identifier">N</span><span class="special">,</span><span class="identifier">I</span><span class="special">></span> <span class="keyword">const</span><span class="special">&</span>
+<span class="special">);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Constructs this iterator as a copy of the specified one so that
+                    the current node is of type <code class="computeroutput"><span class="identifier">Node</span></code>.
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="literal">std::tr1::is_convertible<N,Node></code>
+                    must evaluate to std::tr1::true_type, and <code class="literal">boost::mpl::equal_to<I,IsReverse></code>
+                    must evaluate to boost::mpl::true_.
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Copy constructor
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">depth_first_descendant_iterator</span><span class="special">(</span>
+    <span class="identifier">depth_first_descendant_iterator</span> <span class="keyword">const</span><span class="special">&</span>
+<span class="special">);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Defined by the Copy Constructible concept.
+                  </p>
+                </td>
+<td>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Assignment operator
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">depth_first_descendant_iterator</span><span class="special">&</span>
+    <span class="keyword">operator</span><span class="special">=(</span><span class="identifier">depth_first_descendant_iterator</span> <span class="keyword">const</span><span class="special">&);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Defined by the Assignable concept.
+                  </p>
+                </td>
+<td>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Dereference operator
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">reference</span> <span class="keyword">operator</span><span class="special">*()</span> <span class="keyword">const</span><span class="special">;</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    If the <code class="computeroutput"><span class="identifier">Node</span></code> type
+                    models 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,
+                    returns an object whose <code class="computeroutput"><span class="identifier">first</span></code>
+                    member refers to the key that is associated with the current
+                    node. If the <code class="computeroutput"><span class="identifier">Node</span></code>
+                    type models the <a class="link" href="../concepts/non_assoc_tree_node.html" title="Non-Associative Tree Node"><span class="bold"><strong>Non-Associative Tree Node</strong></span></a> concept,
+                    returns the current node. Required by the Forward Iterator concept.
+                  </p>
+                </td>
+<td>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Indirection operator
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">pointer</span> <span class="keyword">operator</span><span class="special">->()</span> <span class="keyword">const</span><span class="special">;</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    If the <code class="computeroutput"><span class="identifier">Node</span></code> type
+                    models 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,
+                    returns a pointer to the object whose <code class="computeroutput"><span class="identifier">first</span></code>
+                    member refers to the key associated with the current node. If
+                    the <code class="computeroutput"><span class="identifier">Node</span></code> type
+                    models the <a class="link" href="../concepts/non_assoc_tree_node.html" title="Non-Associative Tree Node"><span class="bold"><strong>Non-Associative Tree Node</strong></span></a> concept,
+                    returns a pointer to the current node. Required by the Forward Iterator concept.
+                  </p>
+                </td>
+<td>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Pre-increment operator
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">depth_first_descendant_iterator</span><span class="special">&</span> <span class="keyword">operator</span><span class="special">++();</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    If <code class="computeroutput"><span class="identifier">IsReverse</span></code>
+                    evaluates to boost::mpl::true_, points this
+                    iterator to the next node in the reverse depth-first traversal
+                    of the descenants of the root node that was passed into the constructor;
+                    otherwise, points this iterator to the next node in the depth-first
+                    traversal of the descendants of the root node that was passed
+                    into the constructor. Returns this iterator. Required by the
+                    Forward Iterator concept.
+                  </p>
+                </td>
+<td>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Post-increment operator
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">depth_first_descendant_iterator</span> <span class="keyword">operator</span><span class="special">++(</span><span class="keyword">int</span><span class="special">);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    If <code class="computeroutput"><span class="identifier">IsReverse</span></code>
+                    evaluates to boost::mpl::true_, points this
+                    iterator to the next node in the reverse depth-first traversal
+                    of the descenants of the root node that was passed into the constructor;
+                    otherwise, points this iterator to the next node in the depth-first
+                    traversal of the descendants of the root node that was passed
+                    into the constructor. Returns a new iterator pointing to the
+                    (previous) current node. Required by the Forward Iterator concept.
+                  </p>
+                </td>
+<td>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Pre-decrement operator
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">depth_first_descendant_iterator</span><span class="special">&</span> <span class="keyword">operator</span><span class="special">--();</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    If <code class="computeroutput"><span class="identifier">IsReverse</span></code>
+                    evaluates to boost::mpl::true_, points this
+                    iterator to the previous node in the reverse depth-first traversal
+                    of the descendants of the root node that was passed into the
+                    constructor; otherwise, points this iterator to the previous
+                    node in the depth-first traversal of the descendants of the root
+                    node that was passed into the constructor. Returns this iterator.
+                    Required by the Bidirectional Iterator concept.
+                  </p>
+                </td>
+<td>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Post-decrement operator
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">depth_first_descendant_iterator</span> <span class="keyword">operator</span><span class="special">--(</span><span class="keyword">int</span><span class="special">);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    If <code class="computeroutput"><span class="identifier">IsReverse</span></code>
+                    evaluates to boost::mpl::true_, points this
+                    iterator to the previous node in the reverse depth-first traversal
+                    of the descendants of the root node that was passed into the
+                    constructor; otherwise, points this iterator to the previous
+                    node in the depth-first traversal of the descendants of the root
+                    node that was passed into the constructor. Returns a new iterator
+                    pointing to the (previous) current node. Required by the Bidirectional Iterator concept.
+                  </p>
+                </td>
+<td>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Traversal state conversion operator
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">operator</span> <a class="link" href="traversal_state.html" title="traversal_state">tree_node::traversal_state</a><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Defined by 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>
+<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_desc_iter.non_members"></a><a class="link" href="depth_first_desc_iter.html#tree_node.reference.depth_first_desc_iter.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>
+                    Definition
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Description
+                  </p>
+                </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+                  <p>
+                    Iterator creation
+                  </p>
+                </td>
+<td>
+<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">Node</span><span class="special">></span>
+    <span class="identifier">depth_first_descendant_iterator</span><span class="special"><</span><span class="identifier">Node</span><span class="special">></span>
+        <span class="identifier">make_depth_first_descendant_iterator</span><span class="special">(</span><span class="identifier">Node</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>
+                </td>
+<td>
+                  <p>
+                    Constructs and returns a <code class="computeroutput"><span class="identifier">depth_first_descendant_iterator</span></code>
+                    that will iterate through the descendants of the specified node.
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Iteration
+                  </p>
+                </td>
+<td>
+<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">Node</span><span class="special">></span>
+    <span class="identifier">depth_first_descendant_iterator</span><span class="special"><</span><span class="identifier">Node</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_reverse_iterator</span><span class="special">(</span><span class="identifier">Node</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>
+                </td>
+<td>
+                  <p>
+                    Constructs and returns a <code class="computeroutput"><span class="identifier">depth_first_descendant_iterator</span></code>
+                    that will iterate through the descendants of the specified node
+                    in reverse order.
+                  </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-2013 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="http://www.boost.org/doc/libs/release/doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="compare_selector.html"><img src="http://www.boost.org/doc/libs/release/doc/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
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/depth_first_iterator.html	2013-07-07 14:52:52 EDT (Sun, 07 Jul 2013)	(r84977)
@@ -0,0 +1,713 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>depth_first_iterator<Node,IsReverse></title>
+<link rel="stylesheet" href="http://www.boost.org/doc/libs/release/doc/src/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.77.1">
+<link rel="home" href="../../index.html" title="Chapter 1. tree_node 0.5">
+<link rel="up" href="../reference.html" title="Reference">
+<link rel="prev" href="in_order_iterator.html" title="in_order_iterator<Node,IsReverse>">
+<link rel="next" href="depth_first_desc_iter.html" title="depth_first_descendant_iterator<Node,IsReverse>">
+</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="in_order_iterator.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="depth_first_desc_iter.html"><img src="http://www.boost.org/doc/libs/release/doc/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<Node,IsReverse>"><code class="computeroutput"><span class="identifier">depth_first_iterator</span><span class="special"><</span><span class="identifier">Node</span><span class="special">,</span><span class="identifier">IsReverse</span><span class="special">></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>
+<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">Node</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">IsReverse</span> <span class="special">=</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">false_</span><span class="special">></span>
+    <span class="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="identifier">boost</span><span class="special">::</span><span class="identifier">iterator_adaptor</span><span class="special"><</span>
+            <span class="identifier">depth_first_iterator</span><span class="special"><</span><span class="identifier">Node</span><span class="special">,</span><span class="identifier">IsReverse</span><span class="special">></span>
+          <span class="special">,</span> <span class="identifier">Node</span><span class="special">*</span>
+          <span class="special">,</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">use_default</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">mpl</span><span class="special">::</span><span class="identifier">if_</span><span class="special"><</span>
+                <span class="comment">// Node [const] has bidirectional iterators</span>
+              <span class="special">,</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">bidirectional_traversal_tag</span>
+              <span class="special">,</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">forward_traversal_tag</span>
+            <span class="special">>::</span><span class="identifier">type</span>
+        <span class="special">></span>
+    <span class="special">{</span>
+
+     <span class="keyword">public</span><span class="special">:</span>
+        <span class="keyword">explicit</span> <span class="identifier">depth_first_iterator</span><span class="special">(</span><span class="identifier">Node</span><span class="special">*</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">node_ptr</span> <span class="special">=</span> <span class="keyword">nullptr</span><span class="special">);</span>
+
+        <span class="keyword">explicit</span> <span class="identifier">depth_first_iterator</span><span class="special">(</span><span class="identifier">Node</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">N</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">I</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">N</span><span class="special">,</span><span class="identifier">I</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="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="keyword">typename</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">if_</span><span class="special"><</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">is_convertible</span><span class="special"><</span><span class="identifier">N</span><span class="special">,</span><span class="identifier">Node</span><span class="special">></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">I</span><span class="special">,</span><span class="identifier">IsReverse</span><span class="special">></span>
+                  <span class="special">,</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">false_</span>
+                <span class="special">>::</span><span class="identifier">type</span>
+              <span class="special">,</span> <span class="identifier">enabler</span>
+            <span class="special">>::</span><span class="identifier">type</span> <span class="special">=</span> <span class="identifier">enabler</span><span class="special">()</span>
+        <span class="special">);</span>
+
+        <span class="keyword">operator</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">tree_node</span><span class="special">::</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>
+</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 root node passed to its constructor--and all
+          its descendants--in depth-first fashion, e.g. given the following tree
+          representation:
+        </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>
+          By default, this iterator will traverse the tree nodes in the following
+          order:
+        </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>
+          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 can also be used to traverse the tree nodes in reverse:
+        </p>
+<pre class="programlisting"><span class="identifier">A</span>  <span class="identifier">post_order_traversal</span>
+<span class="identifier">B</span>  <span class="identifier">post_order_traversal</span>
+<span class="identifier">G</span>  <span class="identifier">post_order_traversal</span>
+<span class="identifier">G</span>  <span class="identifier">pre_order_traversal</span>
+<span class="identifier">F</span>  <span class="identifier">post_order_traversal</span>
+<span class="identifier">F</span>  <span class="identifier">pre_order_traversal</span>
+<span class="identifier">B</span>  <span class="identifier">pre_order_traversal</span>
+<span class="identifier">C</span>  <span class="identifier">post_order_traversal</span>
+<span class="identifier">E</span>  <span class="identifier">post_order_traversal</span>
+<span class="identifier">E</span>  <span class="identifier">pre_order_traversal</span>
+<span class="identifier">D</span>  <span class="identifier">post_order_traversal</span>
+<span class="identifier">D</span>  <span class="identifier">pre_order_traversal</span>
+<span class="identifier">C</span>  <span class="identifier">pre_order_traversal</span>
+<span class="identifier">A</span>  <span class="identifier">pre_order_traversal</span>
+</pre>
+<p>
+          This iterator is ideal for algorithms that need to perform both preprocessing
+          and postprocessing of a tree node.
+        </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>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span>boost/tree_node/iterator/depth_first.hpp<span class="special">></span>
+</pre>
+<p>
+          To register under Boost.Typeof:
+        </p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span>boost/typeof/boost/tree_node/iterator/depth_first.hpp<span class="special">></span>
+</pre>
+</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">Node</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    The type of a tree node.
+                  </p>
+                </td>
+<td>
+                  <p>
+                    It must model the <a class="link" href="../concepts/tree_node.html" title="Tree Node"><span class="bold"><strong>Tree Node</strong></span></a> concept, but it can be
+                    <code class="computeroutput"><span class="keyword">const</span></code>-qualified.
+                  </p>
+                </td>
+<td>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">IsReverse</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Configures the <code class="computeroutput"><span class="identifier">depth_first_iterator</span></code>
+                    to traverse tree nodes in reverse depth-first fashion if equivalent
+                    to boost::mpl::true_; otherwise, the
+                    nodes will be traversed in depth-first fashion.
+                  </p>
+                </td>
+<td>
+                  <p>
+                    It must model the Boolean Integral Constant concept.
+                  </p>
+                </td>
+<td>
+                  <p>
+                    boost::mpl::false_
+                  </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.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>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem"><p>
+              <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>
+            </p></li>
+<li class="listitem"><p>
+              Bidirectional Iterator
+            </p></li>
+<li class="listitem"><p>
+              Default Constructible
+            </p></li>
+<li class="listitem"><p>
+              <a href="http://www.boost.org/libs/utility/CopyConstructible.html" target="_top"><span class="bold"><strong>Copy
+              Constructible</strong></span></a>
+            </p></li>
+<li class="listitem"><p>
+              Assignable
+            </p></li>
+</ul></div>
+</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>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+                  <p>
+                    Name
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Expression
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Description
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Type requirements
+                  </p>
+                </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+                  <p>
+                    Value type
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">typedef</span> <span class="special">...</span> <span class="identifier">value_type</span><span class="special">;</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Defined by the <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> concept.
+                  </p>
+                </td>
+<td>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Reference type
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">typedef</span> <span class="special">...</span> <span class="identifier">reference</span><span class="special">;</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Defined by the Forward Iterator concept.
+                  </p>
+                </td>
+<td>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Pointer type
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">typedef</span> <span class="special">...</span> <span class="identifier">pointer</span><span class="special">;</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Defined by the Forward Iterator concept.
+                  </p>
+                </td>
+<td>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Distance type
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">typedef</span> <span class="special">...</span> <span class="identifier">difference_type</span><span class="special">;</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Defined by the Forward Iterator concept.
+                  </p>
+                </td>
+<td>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Iterator category
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">typedef</span> <span class="special">...</span> <span class="identifier">iterator_category</span><span class="special">;</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Defined by the Forward Iterator concept.
+                  </p>
+                </td>
+<td>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Default constructor
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">depth_first_iterator</span><span class="special">();</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Sets this iterator past-the-end. Required by the Default Constructible concept.
+                  </p>
+                </td>
+<td>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Constructor from node
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">depth_first_iterator</span><span class="special">(</span><span class="identifier">Node</span><span class="special">&);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Defined by the <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> concept.
+                  </p>
+                </td>
+<td>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Conversion constructor
+                  </p>
+                </td>
+<td>
+<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">N</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">I</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">N</span><span class="special">,</span><span class="identifier">I</span><span class="special">></span> <span class="keyword">const</span><span class="special">&);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Constructs this iterator as a copy of the specified one so that
+                    the current node is of type <code class="computeroutput"><span class="identifier">Node</span></code>.
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="literal">std::tr1::is_convertible<N,Node></code>
+                    must evaluate to std::tr1::true_type, and <code class="literal">boost::mpl::equal_to<I,IsReverse></code>
+                    must evaluate to boost::mpl::true_.
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Copy constructor
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><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>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Defined by the Copy Constructible concept.
+                  </p>
+                </td>
+<td>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Assignment operator
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><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>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Defined by the Assignable concept.
+                  </p>
+                </td>
+<td>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Dereference operator
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">reference</span> <span class="keyword">operator</span><span class="special">*()</span> <span class="keyword">const</span><span class="special">;</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Returns the current node. Required by the Forward Iterator concept.
+                  </p>
+                </td>
+<td class="auto-generated"> </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Indirection operator
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">pointer</span> <span class="keyword">operator</span><span class="special">->()</span> <span class="keyword">const</span><span class="special">;</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Returns a pointer to the current node. Required by the Forward Iterator concept.
+                  </p>
+                </td>
+<td>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Pre-increment operator
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">depth_first_iterator</span><span class="special">&</span> <span class="keyword">operator</span><span class="special">++();</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    If <code class="computeroutput"><span class="identifier">IsReverse</span></code>
+                    evaluates to boost::mpl::true_, points this
+                    iterator to the next node in the reverse depth-first traversal
+                    of the tree whose root node was passed into the constructor;
+                    otherwise, points this iterator to the next node in the depth-first
+                    traversal of the tree whose root node was passed into the constructor.
+                    Returns this iterator. Required by the Forward Iterator concept.
+                  </p>
+                </td>
+<td>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Post-increment operator
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><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>
+</pre>
+                </td>
+<td>
+                  <p>
+                    If <code class="computeroutput"><span class="identifier">IsReverse</span></code>
+                    evaluates to boost::mpl::true_, points this
+                    iterator to the next node in the reverse depth-first traversal
+                    of the tree whose root node was passed into the constructor;
+                    otherwise, points this iterator to the next node in the depth-first
+                    traversal of the tree whose root node was passed into the constructor.
+                    Returns a new iterator pointing to the (previous) current node.
+                    Required by the Forward Iterator concept.
+                  </p>
+                </td>
+<td>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Pre-decrement operator
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">depth_first_iterator</span><span class="special">&</span> <span class="keyword">operator</span><span class="special">--();</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    If <code class="computeroutput"><span class="identifier">IsReverse</span></code>
+                    evaluates to boost::mpl::true_, points this
+                    iterator to the previous node in the reverse depth-first traversal
+                    of the tree whose root node was passed into the constructor;
+                    otherwise, points this iterator to the previous node in the depth-first
+                    traversal of the tree whose root node was passed into the constructor.
+                    Returns this iterator. Required by the Bidirectional Iterator concept.
+                  </p>
+                </td>
+<td>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Post-decrement operator
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><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>
+</pre>
+                </td>
+<td>
+                  <p>
+                    If <code class="computeroutput"><span class="identifier">IsReverse</span></code>
+                    evaluates to boost::mpl::true_, points this
+                    iterator to the previous node in the reverse depth-first traversal
+                    of the tree whose root node was passed into the constructor;
+                    otherwise, points this iterator to the previous node in the depth-first
+                    traversal of the tree whose root node was passed into the constructor.
+                    Returns a new iterator pointing to the (next) current node. Required
+                    by the Bidirectional Iterator concept.
+                  </p>
+                </td>
+<td>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Traversal state conversion operator
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">operator</span> <a class="link" href="traversal_state.html" title="traversal_state">tree_node::traversal_state</a><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Defined by 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>
+<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.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>
+<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">Node</span><span class="special">></span>
+    <span class="identifier">depth_first_iterator</span><span class="special"><</span><span class="identifier">Node</span><span class="special">></span> <span class="identifier">make_depth_first_iterator</span><span class="special">(</span><span class="identifier">Node</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>
+                </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>
+                    Reverse iterator creation
+                  </p>
+                </td>
+<td>
+<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">Node</span><span class="special">></span>
+    <span class="identifier">depth_first_iterator</span><span class="special"><</span><span class="identifier">Node</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_reverse_iterator</span><span class="special">(</span><span class="identifier">Node</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>
+                </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
+                    in reverse order.
+                  </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-2013 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="in_order_iterator.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="depth_first_desc_iter.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/dereference_iterator.html
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/dereference_iterator.html	2013-07-07 14:52:52 EDT (Sun, 07 Jul 2013)	(r84977)
@@ -0,0 +1,101 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>dereference_iterator()</title>
+<link rel="stylesheet" href="http://www.boost.org/doc/libs/release/doc/src/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.77.1">
+<link rel="home" href="../../index.html" title="Chapter 1. tree_node 0.5">
+<link rel="up" href="../reference.html" title="Reference">
+<link rel="prev" href="cartesian_sort_range.html" title="cartesian_sort_range()">
+<link rel="next" href="get_properties.html" title="get_properties()">
+</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="cartesian_sort_range.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="get_properties.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="tree_node.reference.dereference_iterator"></a><a class="link" href="dereference_iterator.html" title="dereference_iterator()"><code class="computeroutput"><span class="identifier">dereference_iterator</span><span class="special">()</span></code></a>
+</h3></div></div></div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.dereference_iterator.func_synopsis"></a><a class="link" href="dereference_iterator.html#tree_node.reference.dereference_iterator.func_synopsis" title="Function Synopsis">Function
+        Synopsis</a>
+</h4></div></div></div>
+<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">Iterator</span><span class="special">></span>
+    <span class="keyword">typename</span> <span class="identifier">result_of</span><span class="special">::</span><span class="identifier">dereference_iterator</span><span class="special"><</span><span class="identifier">Iterator</span><span class="special">>::</span><span class="identifier">type</span>
+        <span class="identifier">dereference_iterator</span><span class="special">(</span><span class="identifier">Iterator</span> <span class="identifier">itr</span><span class="special">);</span>
+<span class="special">}}</span>  <span class="comment">// namespace boost::tree_node</span>
+</pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.dereference_iterator.func_description"></a><a class="link" href="dereference_iterator.html#tree_node.reference.dereference_iterator.func_description" title="Function Description">Function
+        Description</a>
+</h4></div></div></div>
+<p>
+          This function takes in a <a class="link" href="../concepts/tree_node_iterator.html" title="Tree Node Iterator"><span class="bold"><strong>Tree Node Iterator</strong></span></a> and returns the <a class="link" href="../concepts/tree_node.html" title="Tree Node"><span class="bold"><strong>Tree Node</strong></span></a>
+          to which it currently points. In terms of genericity, this function is
+          necessary not only because it handles both <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> and <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> models, but
+          because the iterator interface of associative Boost.PointerContainer types is different
+          from that of their standard library counterparts.
+        </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.dereference_iterator.result_of"></a><a class="link" href="dereference_iterator.html#tree_node.reference.dereference_iterator.result_of" title="Return Type Metafunction Synopsis">Return
+        Type Metafunction Synopsis</a>
+</h4></div></div></div>
+<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">namespace</span> <span class="identifier">result_of</span> <span class="special">{</span>
+
+    <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">Iterator</span><span class="special">></span>
+    <span class="keyword">struct</span> <span class="identifier">dereference_iterator</span>
+    <span class="special">{</span>
+        <span class="keyword">typedef</span> <span class="identifier">unspecified</span> <span class="identifier">type</span><span class="special">;</span>
+    <span class="special">};</span>
+<span class="special">}}}</span>  <span class="comment">// namespace boost::tree_node::result_of</span>
+</pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.dereference_iterator.result_of_description"></a><a class="link" href="dereference_iterator.html#tree_node.reference.dereference_iterator.result_of_description" title="Return Type Metafunction Description">Return
+        Type Metafunction Description</a>
+</h4></div></div></div>
+<p>
+          Let <code class="computeroutput"><span class="identifier">Itr</span></code> be a <a class="link" href="../concepts/tree_node_iterator.html" title="Tree Node Iterator"><span class="bold"><strong>Tree Node Iterator</strong></span></a> model.
+        </p>
+<pre class="programlisting"><span class="keyword">typedef</span> <span class="identifier">dereference_iterator</span><span class="special"><</span><span class="identifier">Itr</span><span class="special">>::</span><span class="identifier">type</span> <span class="identifier">r</span><span class="special">;</span>
+</pre>
+<p>
+          <span class="bold"><strong>Return type:</strong></span> A Fusion Sequence of <a href="http://www.boost.org/libs/fusion/doc/html/fusion/support/pair.html" target="_top">half-runtime
+          pairs</a> of key types and their matching value types as defined by
+          the specified node type.
+        </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.dereference_iterator.definition"></a><a class="link" href="dereference_iterator.html#tree_node.reference.dereference_iterator.definition" title="Where defined">Where
+        defined</a>
+</h4></div></div></div>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span>boost/tree_node/iterator/dereference.hpp<span class="special">></span>
+</pre>
+</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-2013 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="cartesian_sort_range.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="get_properties.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/emplace_ctor_fwd_decl.html
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/emplace_ctor_fwd_decl.html	2013-07-07 14:52:52 EDT (Sun, 07 Jul 2013)	(r84977)
@@ -0,0 +1,120 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>BOOST_TREE_NODE_EMPLACEMENT_CTOR_FWD_DECL</title>
+<link rel="stylesheet" href="http://www.boost.org/doc/libs/release/doc/src/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.77.1">
+<link rel="home" href="../../index.html" title="Chapter 1. tree_node 0.5">
+<link rel="up" href="../reference.html" title="Reference">
+<link rel="prev" href="assoc_cont_derived_body.html" title="BOOST_TREE_NODE_ASSOCIATIVE_CONTAINER_DERIVED_BODY">
+<link rel="next" href="emplace_ctor_inline_hdr.html" title="BOOST_TREE_NODE_EMPLACEMENT_CTOR_INLINE_HDR">
+</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="assoc_cont_derived_body.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="emplace_ctor_inline_hdr.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="tree_node.reference.emplace_ctor_fwd_decl"></a><a class="link" href="emplace_ctor_fwd_decl.html" title="BOOST_TREE_NODE_EMPLACEMENT_CTOR_FWD_DECL"><code class="computeroutput"><span class="identifier">BOOST_TREE_NODE_EMPLACEMENT_CTOR_FWD_DECL</span></code></a>
+</h3></div></div></div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.emplace_ctor_fwd_decl.synopsis"></a><a class="link" href="emplace_ctor_fwd_decl.html#tree_node.reference.emplace_ctor_fwd_decl.synopsis" title="Synopsis">Synopsis</a>
+</h4></div></div></div>
+<pre class="programlisting"><span class="preprocessor">#define</span> <span class="identifier">BOOST_TREE_NODE_EMPLACEMENT_CTOR_HEADER</span><span class="special">(</span><span class="identifier">z</span><span class="special">,</span> <span class="identifier">n</span><span class="special">,</span> <span class="identifier">Type</span><span class="special">)</span>                  <span class="special">\</span>
+        <span class="identifier">BOOST_PP_EXPR_IF</span><span class="special">(</span><span class="identifier">n</span><span class="special">,</span> <span class="keyword">template</span> <span class="special"><)</span>                                      <span class="special">\</span>
+            <span class="identifier">BOOST_PP_ENUM_PARAMS_Z</span><span class="special">(</span><span class="identifier">z</span><span class="special">,</span> <span class="identifier">n</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">P</span><span class="special">)</span>                         <span class="special">\</span>
+        <span class="identifier">BOOST_PP_EXPR_IF</span><span class="special">(</span><span class="identifier">n</span><span class="special">,</span> <span class="special">>)</span>                                               <span class="special">\</span>
+        <span class="identifier">BOOST_PP_EXPR_IIF</span><span class="special">(</span><span class="identifier">BOOST_PP_EQUAL</span><span class="special">(</span><span class="number">1</span><span class="special">,</span> <span class="identifier">n</span><span class="special">),</span> <span class="keyword">explicit</span><span class="special">)</span>                    <span class="special">\</span>
+        <span class="identifier">Type</span><span class="special">(</span>                                                                <span class="special">\</span>
+            <span class="identifier">BOOST_PP_CAT</span><span class="special">(</span><span class="identifier">BOOST_PP_ENUM_</span><span class="special">,</span> <span class="identifier">z</span><span class="special">)(</span>                                 <span class="special">\</span>
+                <span class="identifier">n</span>                                                            <span class="special">\</span>
+              <span class="special">,</span> <span class="identifier">BOOST_CONTAINER_PP_PARAM_LIST</span>                                <span class="special">\</span>
+              <span class="special">,</span> <span class="identifier">_</span>                                                            <span class="special">\</span>
+            <span class="special">)</span>                                                                <span class="special">\</span>
+        <span class="special">)</span>                                                                    <span class="special">\</span>
+</pre>
+<pre class="programlisting"><span class="preprocessor">#define</span> <span class="identifier">BOOST_TREE_NODE_EMPLACEMENT_CTOR_FWD_DECL</span><span class="special">(</span><span class="identifier">z</span><span class="special">,</span> <span class="identifier">n</span><span class="special">,</span> <span class="identifier">Type</span><span class="special">)</span>                <span class="special">\</span>
+        <span class="identifier">BOOST_TREE_NODE_EMPLACEMENT_CTOR_HEADER</span><span class="special">(</span><span class="identifier">z</span><span class="special">,</span> <span class="identifier">n</span><span class="special">,</span> <span class="identifier">Type</span><span class="special">);</span>                 <span class="special">\</span>
+</pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.emplace_ctor_fwd_decl.description"></a><a class="link" href="emplace_ctor_fwd_decl.html#tree_node.reference.emplace_ctor_fwd_decl.description" title="Description">Description</a>
+</h4></div></div></div>
+<p>
+          Defined only if the compiler does not support perfect forwarding, and meant
+          to be used in the <code class="computeroutput"><span class="keyword">public</span></code> scope
+          of a <a class="link" href="../concepts/base_tree_node.html" title="Base Tree Node"><span class="bold"><strong>Base
+          Tree Node</strong></span></a>, this macro expands to the forward declaration
+          of a constructor that will emulate it.
+        </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.emplace_ctor_fwd_decl.usage"></a><a class="link" href="emplace_ctor_fwd_decl.html#tree_node.reference.emplace_ctor_fwd_decl.usage" title="Usage">Usage</a>
+</h4></div></div></div>
+<pre class="programlisting"><span class="keyword">class</span> <span class="identifier">some_node_type</span>
+<span class="special">{</span>
+ <span class="keyword">public</span><span class="special">:</span>
+<span class="preprocessor">#if</span> <span class="identifier">defined</span> <span class="identifier">BOOST_CONTAINER_PERFECT_FORWARDING</span>
+    <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="special">...</span><span class="identifier">Args</span><span class="special">></span>
+    <span class="keyword">explicit</span> <span class="identifier">some_node_type</span><span class="special">(</span><span class="identifier">Args</span><span class="special">&&</span> <span class="special">...</span><span class="identifier">args</span><span class="special">);</span>
+<span class="preprocessor">#else</span>
+    BOOST_PP_REPEAT<span class="special">(</span>
+        <span class="identifier">BOOST_CONTAINER_MAX_CONSTRUCTOR_PARAMETERS</span>
+      <span class="special">,</span> <span class="identifier">BOOST_TREE_NODE_EMPLACEMENT_CTOR_FWD_DECL</span>
+      <span class="special">,</span> <span class="identifier">some_node_type</span>
+    <span class="special">)</span>
+<span class="preprocessor">#endif</span>
+<span class="special">};</span>
+</pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.emplace_ctor_fwd_decl.arguments"></a><a class="link" href="emplace_ctor_fwd_decl.html#tree_node.reference.emplace_ctor_fwd_decl.arguments" title="Arguments">Arguments</a>
+</h4></div></div></div>
+<div class="variablelist">
+<p class="title"><b>Notation</b></p>
+<dl class="variablelist">
+<dt><span class="term"><code class="computeroutput"><span class="identifier">z</span></code></span></dt>
+<dd><p>
+                The next available BOOST_PP_REPEAT dimension.
+              </p></dd>
+<dt><span class="term"><code class="computeroutput"><span class="identifier">n</span></code></span></dt>
+<dd><p>
+                The number of arguments that the current iteration's constructor
+                will accept.
+              </p></dd>
+<dt><span class="term"><code class="computeroutput"><span class="identifier">Type</span></code></span></dt>
+<dd><p>
+                The name of the enclosing type.
+              </p></dd>
+</dl>
+</div>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.emplace_ctor_fwd_decl.definition"></a><a class="link" href="emplace_ctor_fwd_decl.html#tree_node.reference.emplace_ctor_fwd_decl.definition" title="Where defined">Where
+        defined</a>
+</h4></div></div></div>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span>boost/tree_node/preprocessor.hpp<span class="special">></span>
+</pre>
+</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-2013 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="assoc_cont_derived_body.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="emplace_ctor_inline_hdr.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/emplace_ctor_inline_def.html
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/emplace_ctor_inline_def.html	2013-07-07 14:52:52 EDT (Sun, 07 Jul 2013)	(r84977)
@@ -0,0 +1,124 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>BOOST_TREE_NODE_EMPLACEMENT_CTOR_INLINE_DEF</title>
+<link rel="stylesheet" href="http://www.boost.org/doc/libs/release/doc/src/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.77.1">
+<link rel="home" href="../../index.html" title="Chapter 1. tree_node 0.5">
+<link rel="up" href="../reference.html" title="Reference">
+<link rel="prev" href="emplace_ctor_inline_hdr.html" title="BOOST_TREE_NODE_EMPLACEMENT_CTOR_INLINE_HDR">
+<link rel="next" href="emplace_ctor_w_alloc_f_dcl.html" title="BOOST_TREE_NODE_EMPLACEMENT_CTOR_W_ALLOC_FWD_DECL">
+</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="emplace_ctor_inline_hdr.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="emplace_ctor_w_alloc_f_dcl.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="tree_node.reference.emplace_ctor_inline_def"></a><a class="link" href="emplace_ctor_inline_def.html" title="BOOST_TREE_NODE_EMPLACEMENT_CTOR_INLINE_DEF"><code class="computeroutput"><span class="identifier">BOOST_TREE_NODE_EMPLACEMENT_CTOR_INLINE_DEF</span></code></a>
+</h3></div></div></div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.emplace_ctor_inline_def.synopsis"></a><a class="link" href="emplace_ctor_inline_def.html#tree_node.reference.emplace_ctor_inline_def.synopsis" title="Synopsis">Synopsis</a>
+</h4></div></div></div>
+<pre class="programlisting"><span class="preprocessor">#define</span> <span class="identifier">BOOST_TREE_NODE_EMPLACEMENT_CTOR_INLINE_DEF</span><span class="special">(</span><span class="identifier">z</span><span class="special">,</span> <span class="identifier">n</span><span class="special">,</span> <span class="identifier">tuple</span><span class="special">)</span>             <span class="special">\</span>
+        <span class="identifier">BOOST_TREE_NODE_EMPLACEMENT_CTOR_INLINE_HEADER</span><span class="special">(</span><span class="identifier">z</span><span class="special">,</span> <span class="identifier">n</span><span class="special">,</span> <span class="identifier">tuple</span><span class="special">)</span>          <span class="special">\</span>
+        <span class="special">{</span>                                                                    <span class="special">\</span>
+            <span class="identifier">BOOST_PP_TUPLE_ELEM</span><span class="special">(</span>                                             <span class="special">\</span>
+                <span class="number">2</span>                                                            <span class="special">\</span>
+              <span class="special">,</span> <span class="number">1</span>                                                            <span class="special">\</span>
+              <span class="special">,</span> <span class="identifier">tuple</span>                                                        <span class="special">\</span>
+            <span class="special">)::</span><span class="identifier">on_post_emplacement_construct</span><span class="special">();</span>                              <span class="special">\</span>
+        <span class="special">}</span>                                                                    <span class="special">\</span>
+</pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.emplace_ctor_inline_def.description"></a><a class="link" href="emplace_ctor_inline_def.html#tree_node.reference.emplace_ctor_inline_def.description" title="Description">Description</a>
+</h4></div></div></div>
+<p>
+          Defined only if the compiler does not support perfect forwarding, and meant
+          to be used in the <code class="computeroutput"><span class="keyword">public</span></code> scope
+          of a <a class="link" href="../concepts/tree_node.html" title="Tree Node"><span class="bold"><strong>Tree
+          Node</strong></span></a> model that inherits from a <a class="link" href="../concepts/base_tree_node.html" title="Base Tree Node"><span class="bold"><strong>Base Tree Node</strong></span></a> and defines no additional
+          members, this macro expands to the inline definition of a constructor that
+          will emulate it. Uses <a class="link" href="emplace_ctor_inline_hdr.html" title="BOOST_TREE_NODE_EMPLACEMENT_CTOR_INLINE_HDR"><code class="computeroutput"><span class="identifier">BOOST_TREE_NODE_EMPLACEMENT_CTOR_INLINE_HEADER</span></code></a>.
+        </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.emplace_ctor_inline_def.usage"></a><a class="link" href="emplace_ctor_inline_def.html#tree_node.reference.emplace_ctor_inline_def.usage" title="Usage">Usage</a>
+</h4></div></div></div>
+<pre class="programlisting"><span class="keyword">class</span> <span class="identifier">Derived</span> <span class="special">:</span> <span class="keyword">public</span> <span class="identifier">Base</span>
+<span class="special">{</span>
+ <span class="keyword">public</span><span class="special">:</span>
+<span class="preprocessor">#if</span> <span class="identifier">defined</span> <span class="identifier">BOOST_CONTAINER_PERFECT_FORWARDING</span>
+    <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="special">...</span><span class="identifier">Args</span><span class="special">></span>
+    <span class="keyword">inline</span> <span class="keyword">explicit</span> <span class="identifier">Derived</span><span class="special">(</span><span class="identifier">Args</span><span class="special">&&</span> <span class="special">...</span><span class="identifier">args</span><span class="special">)</span>
+      <span class="special">:</span> <span class="identifier">Base</span><span class="special">(</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">forward</span><span class="special"><</span><span class="identifier">Args</span><span class="special">>(</span><span class="identifier">args</span><span class="special">)...)</span>
+    <span class="special">{</span>
+        <span class="identifier">Base</span><span class="special">::</span><span class="identifier">on_post_emplacement_construct</span><span class="special">();</span>
+    <span class="special">}</span>
+<span class="preprocessor">#else</span>
+    BOOST_PP_REPEAT<span class="special">(</span>
+        <span class="identifier">BOOST_CONTAINER_MAX_CONSTRUCTOR_PARAMETERS</span>
+      <span class="special">,</span> <span class="identifier">BOOST_TREE_NODE_EMPLACEMENT_CTOR_INLINE_DEF</span>
+      <span class="special">,</span> <span class="special">(</span><span class="identifier">Derived</span><span class="special">,</span> <span class="identifier">Base</span><span class="special">)</span>
+    <span class="special">)</span>
+<span class="preprocessor">#endif</span>
+<span class="special">};</span>
+</pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.emplace_ctor_inline_def.arguments"></a><a class="link" href="emplace_ctor_inline_def.html#tree_node.reference.emplace_ctor_inline_def.arguments" title="Arguments">Arguments</a>
+</h4></div></div></div>
+<div class="variablelist">
+<p class="title"><b>Notation</b></p>
+<dl class="variablelist">
+<dt><span class="term"><code class="computeroutput"><span class="identifier">z</span></code></span></dt>
+<dd><p>
+                The next available BOOST_PP_REPEAT dimension.
+              </p></dd>
+<dt><span class="term"><code class="computeroutput"><span class="identifier">n</span></code></span></dt>
+<dd><p>
+                The number of arguments that the current iteration's constructor
+                will accept.
+              </p></dd>
+<dt><span class="term"><code class="computeroutput"><span class="identifier">Derived</span></code></span></dt>
+<dd><p>
+                The name of the enclosing type.
+              </p></dd>
+<dt><span class="term"><code class="computeroutput"><span class="identifier">Base</span></code></span></dt>
+<dd><p>
+                The name of the type from which <code class="computeroutput"><span class="identifier">Derived</span></code>
+                inherits.
+              </p></dd>
+</dl>
+</div>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.emplace_ctor_inline_def.definition"></a><a class="link" href="emplace_ctor_inline_def.html#tree_node.reference.emplace_ctor_inline_def.definition" title="Where defined">Where
+        defined</a>
+</h4></div></div></div>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span>boost/tree_node/preprocessor.hpp<span class="special">></span>
+</pre>
+</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-2013 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="emplace_ctor_inline_hdr.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="emplace_ctor_w_alloc_f_dcl.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/emplace_ctor_inline_hdr.html
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/emplace_ctor_inline_hdr.html	2013-07-07 14:52:52 EDT (Sun, 07 Jul 2013)	(r84977)
@@ -0,0 +1,158 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>BOOST_TREE_NODE_EMPLACEMENT_CTOR_INLINE_HDR</title>
+<link rel="stylesheet" href="http://www.boost.org/doc/libs/release/doc/src/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.77.1">
+<link rel="home" href="../../index.html" title="Chapter 1. tree_node 0.5">
+<link rel="up" href="../reference.html" title="Reference">
+<link rel="prev" href="emplace_ctor_fwd_decl.html" title="BOOST_TREE_NODE_EMPLACEMENT_CTOR_FWD_DECL">
+<link rel="next" href="emplace_ctor_inline_def.html" title="BOOST_TREE_NODE_EMPLACEMENT_CTOR_INLINE_DEF">
+</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="emplace_ctor_fwd_decl.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="emplace_ctor_inline_def.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="tree_node.reference.emplace_ctor_inline_hdr"></a><a class="link" href="emplace_ctor_inline_hdr.html" title="BOOST_TREE_NODE_EMPLACEMENT_CTOR_INLINE_HDR"><code class="computeroutput"><span class="identifier">BOOST_TREE_NODE_EMPLACEMENT_CTOR_INLINE_HDR</span></code></a>
+</h3></div></div></div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.emplace_ctor_inline_hdr.synopsis"></a><a class="link" href="emplace_ctor_inline_hdr.html#tree_node.reference.emplace_ctor_inline_hdr.synopsis" title="Synopsis">Synopsis</a>
+</h4></div></div></div>
+<pre class="programlisting"><span class="preprocessor">#define</span> <span class="identifier">BOOST_TREE_NODE_EMPLACEMENT_CTOR_HEADER</span><span class="special">(</span><span class="identifier">z</span><span class="special">,</span> <span class="identifier">n</span><span class="special">,</span> <span class="identifier">Type</span><span class="special">)</span>                  <span class="special">\</span>
+        <span class="identifier">BOOST_PP_EXPR_IF</span><span class="special">(</span><span class="identifier">n</span><span class="special">,</span> <span class="keyword">template</span> <span class="special"><)</span>                                      <span class="special">\</span>
+            <span class="identifier">BOOST_PP_ENUM_PARAMS_Z</span><span class="special">(</span><span class="identifier">z</span><span class="special">,</span> <span class="identifier">n</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">P</span><span class="special">)</span>                         <span class="special">\</span>
+        <span class="identifier">BOOST_PP_EXPR_IF</span><span class="special">(</span><span class="identifier">n</span><span class="special">,</span> <span class="special">>)</span>                                               <span class="special">\</span>
+        <span class="identifier">BOOST_PP_EXPR_IIF</span><span class="special">(</span><span class="identifier">BOOST_PP_EQUAL</span><span class="special">(</span><span class="number">1</span><span class="special">,</span> <span class="identifier">n</span><span class="special">),</span> <span class="keyword">explicit</span><span class="special">)</span>                    <span class="special">\</span>
+        <span class="identifier">Type</span><span class="special">(</span>                                                                <span class="special">\</span>
+            <span class="identifier">BOOST_PP_CAT</span><span class="special">(</span><span class="identifier">BOOST_PP_ENUM_</span><span class="special">,</span> <span class="identifier">z</span><span class="special">)(</span>                                 <span class="special">\</span>
+                <span class="identifier">n</span>                                                            <span class="special">\</span>
+              <span class="special">,</span> <span class="identifier">BOOST_CONTAINER_PP_PARAM_LIST</span>                                <span class="special">\</span>
+              <span class="special">,</span> <span class="identifier">_</span>                                                            <span class="special">\</span>
+            <span class="special">)</span>                                                                <span class="special">\</span>
+        <span class="special">)</span>                                                                    <span class="special">\</span>
+</pre>
+<pre class="programlisting"><span class="preprocessor">#define</span> <span class="identifier">BOOST_TREE_NODE_EMPLACEMENT_CTOR_BASE_FWD</span><span class="special">(</span><span class="identifier">z</span><span class="special">,</span> <span class="identifier">n</span><span class="special">,</span> <span class="identifier">Base</span><span class="special">)</span>                <span class="special">\</span>
+      <span class="special">:</span> <span class="identifier">Base</span><span class="special">(</span>                                                                <span class="special">\</span>
+            <span class="identifier">BOOST_PP_CAT</span><span class="special">(</span><span class="identifier">BOOST_PP_ENUM_</span><span class="special">,</span> <span class="identifier">z</span><span class="special">)(</span>                                 <span class="special">\</span>
+                <span class="identifier">n</span>                                                            <span class="special">\</span>
+              <span class="special">,</span> <span class="identifier">BOOST_CONTAINER_PP_PARAM_FORWARD</span>                             <span class="special">\</span>
+              <span class="special">,</span> <span class="identifier">_</span>                                                            <span class="special">\</span>
+            <span class="special">)</span>                                                                <span class="special">\</span>
+        <span class="special">)</span>                                                                    <span class="special">\</span>
+</pre>
+<pre class="programlisting"><span class="preprocessor">#define</span> <span class="identifier">BOOST_TREE_NODE_EMPLACEMENT_CTOR_INLINE_HEADER</span><span class="special">(</span><span class="identifier">z</span><span class="special">,</span> <span class="identifier">n</span><span class="special">,</span> <span class="identifier">Tuple</span><span class="special">)</span>          <span class="special">\</span>
+        <span class="identifier">BOOST_TREE_NODE_EMPLACEMENT_CTOR_HEADER</span><span class="special">(</span>                             <span class="special">\</span>
+            <span class="identifier">z</span>                                                                <span class="special">\</span>
+          <span class="special">,</span> <span class="identifier">n</span>                                                                <span class="special">\</span>
+          <span class="special">,</span> <span class="identifier">BOOST_PP_TUPLE_ELEM</span><span class="special">(</span><span class="number">2</span><span class="special">,</span> <span class="number">0</span><span class="special">,</span> <span class="identifier">Tuple</span><span class="special">)</span>                                 <span class="special">\</span>
+        <span class="special">)</span>                                                                    <span class="special">\</span>
+        <span class="identifier">BOOST_TREE_NODE_EMPLACEMENT_CTOR_BASE_FWD</span><span class="special">(</span>                           <span class="special">\</span>
+            <span class="identifier">z</span>                                                                <span class="special">\</span>
+          <span class="special">,</span> <span class="identifier">n</span>                                                                <span class="special">\</span>
+          <span class="special">,</span> <span class="identifier">BOOST_PP_TUPLE_ELEM</span><span class="special">(</span><span class="number">2</span><span class="special">,</span> <span class="number">1</span><span class="special">,</span> <span class="identifier">Tuple</span><span class="special">)</span>                                 <span class="special">\</span>
+        <span class="special">)</span>                                                                    <span class="special">\</span>
+</pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.emplace_ctor_inline_hdr.description"></a><a class="link" href="emplace_ctor_inline_hdr.html#tree_node.reference.emplace_ctor_inline_hdr.description" title="Description">Description</a>
+</h4></div></div></div>
+<p>
+          Defined only if the compiler does not support perfect forwarding, this
+          macro expands to the header of a constructor that emulates it along witht
+          the first part of its initialization list.
+        </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.emplace_ctor_inline_hdr.usage"></a><a class="link" href="emplace_ctor_inline_hdr.html#tree_node.reference.emplace_ctor_inline_hdr.usage" title="Usage">Usage</a>
+</h4></div></div></div>
+<pre class="programlisting"><span class="keyword">class</span> <span class="identifier">Derived</span> <span class="special">:</span> <span class="keyword">public</span> <span class="identifier">Base</span>
+<span class="special">{</span>
+    <span class="keyword">int</span> <span class="identifier">some_member</span><span class="special">;</span>
+
+    <span class="keyword">void</span> <span class="identifier">post_construct</span><span class="special">(</span><span class="keyword">int</span><span class="special">);</span>
+
+ <span class="keyword">public</span><span class="special">:</span>
+<span class="preprocessor">#if</span> <span class="identifier">defined</span> <span class="identifier">BOOST_CONTAINER_PERFECT_FORWARDING</span>
+    <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="special">...</span><span class="identifier">Args</span><span class="special">></span>
+    <span class="keyword">inline</span> <span class="keyword">explicit</span> <span class="identifier">Derived</span><span class="special">(</span><span class="identifier">Args</span><span class="special">&&</span> <span class="special">...</span><span class="identifier">args</span><span class="special">)</span>
+      <span class="special">:</span> <span class="identifier">Base</span><span class="special">(</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">forward</span><span class="special"><</span><span class="identifier">Args</span><span class="special">>(</span><span class="identifier">args</span><span class="special">)...)</span>
+      <span class="special">,</span> <span class="identifier">some_member</span><span class="special">(</span><span class="number">0</span><span class="special">)</span>
+    <span class="special">{</span>
+        <span class="keyword">this</span><span class="special">-></span><span class="identifier">post_construct</span><span class="special">(</span><span class="keyword">this</span><span class="special">-></span><span class="identifier">some_member</span><span class="special">);</span>
+    <span class="special">}</span>
+<span class="preprocessor">#else</span>
+<span class="preprocessor">#define</span> <span class="identifier">YOUR_MACRO</span><span class="special">(</span><span class="identifier">z</span><span class="special">,</span> <span class="identifier">n</span><span class="special">,</span> <span class="identifier">Tuple</span><span class="special">)</span> <span class="special">\</span>
+    <span class="identifier">BOOST_TREE_NODE_EMPLACEMENT_CTOR_INLINE_HEADER</span><span class="special">(</span><span class="identifier">z</span><span class="special">,</span> <span class="identifier">n</span><span class="special">,</span> <span class="identifier">Tuple</span><span class="special">)</span> <span class="special">\</span>
+      <span class="special">,</span> <span class="identifier">some_member</span><span class="special">(</span><span class="number">0</span><span class="special">)</span> <span class="special">\</span>
+    <span class="special">{</span> <span class="special">\</span>
+        <span class="keyword">this</span><span class="special">-></span><span class="identifier">post_construct</span><span class="special">(</span><span class="keyword">this</span><span class="special">-></span><span class="identifier">some_member</span><span class="special">);</span> <span class="special">\</span>
+    <span class="special">}</span> <span class="special">\</span>
+<span class="comment">//!</span>
+    BOOST_PP_REPEAT<span class="special">(</span>
+        <span class="identifier">BOOST_CONTAINER_MAX_CONSTRUCTOR_PARAMETERS</span>
+      <span class="special">,</span> <span class="identifier">YOUR_MACRO</span>
+      <span class="special">,</span> <span class="special">(</span><span class="identifier">Derived</span><span class="special">,</span> <span class="identifier">Base</span><span class="special">)</span>
+    <span class="special">)</span>
+<span class="preprocessor">#undef</span> <span class="identifier">YOUR_MACRO</span>
+<span class="preprocessor">#endif</span>
+<span class="special">};</span>
+</pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.emplace_ctor_inline_hdr.arguments"></a><a class="link" href="emplace_ctor_inline_hdr.html#tree_node.reference.emplace_ctor_inline_hdr.arguments" title="Arguments">Arguments</a>
+</h4></div></div></div>
+<div class="variablelist">
+<p class="title"><b>Notation</b></p>
+<dl class="variablelist">
+<dt><span class="term"><code class="computeroutput"><span class="identifier">z</span></code></span></dt>
+<dd><p>
+                The next available BOOST_PP_REPEAT dimension.
+              </p></dd>
+<dt><span class="term"><code class="computeroutput"><span class="identifier">n</span></code></span></dt>
+<dd><p>
+                The number of arguments that the current iteration's constructor
+                will accept.
+              </p></dd>
+<dt><span class="term"><code class="computeroutput"><span class="identifier">Derived</span></code></span></dt>
+<dd><p>
+                The name of the enclosing type.
+              </p></dd>
+<dt><span class="term"><code class="computeroutput"><span class="identifier">Base</span></code></span></dt>
+<dd><p>
+                The name of the type from which <code class="computeroutput"><span class="identifier">Derived</span></code>
+                inherits.
+              </p></dd>
+</dl>
+</div>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.emplace_ctor_inline_hdr.definition"></a><a class="link" href="emplace_ctor_inline_hdr.html#tree_node.reference.emplace_ctor_inline_hdr.definition" title="Where defined">Where
+        defined</a>
+</h4></div></div></div>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span>boost/tree_node/preprocessor.hpp<span class="special">></span>
+</pre>
+</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-2013 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="emplace_ctor_fwd_decl.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="emplace_ctor_inline_def.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/emplace_ctor_w_alloc_f_dcl.html
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/emplace_ctor_w_alloc_f_dcl.html	2013-07-07 14:52:52 EDT (Sun, 07 Jul 2013)	(r84977)
@@ -0,0 +1,129 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>BOOST_TREE_NODE_EMPLACEMENT_CTOR_W_ALLOC_FWD_DECL</title>
+<link rel="stylesheet" href="http://www.boost.org/doc/libs/release/doc/src/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.77.1">
+<link rel="home" href="../../index.html" title="Chapter 1. tree_node 0.5">
+<link rel="up" href="../reference.html" title="Reference">
+<link rel="prev" href="emplace_ctor_inline_def.html" title="BOOST_TREE_NODE_EMPLACEMENT_CTOR_INLINE_DEF">
+<link rel="next" href="emplace_ctor_w_alloc_i_hdr.html" title="BOOST_TREE_NODE_EMPLACEMENT_CTOR_W_ALLOC_INLINE_HEADER">
+</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="emplace_ctor_inline_def.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="emplace_ctor_w_alloc_i_hdr.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="tree_node.reference.emplace_ctor_w_alloc_f_dcl"></a><a class="link" href="emplace_ctor_w_alloc_f_dcl.html" title="BOOST_TREE_NODE_EMPLACEMENT_CTOR_W_ALLOC_FWD_DECL"><code class="computeroutput"><span class="identifier">BOOST_TREE_NODE_EMPLACEMENT_CTOR_W_ALLOC_FWD_DECL</span></code>
+      </a>
+</h3></div></div></div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.emplace_ctor_w_alloc_f_dcl.synopsis"></a><a class="link" href="emplace_ctor_w_alloc_f_dcl.html#tree_node.reference.emplace_ctor_w_alloc_f_dcl.synopsis" title="Synopsis">Synopsis</a>
+</h4></div></div></div>
+<pre class="programlisting"><span class="preprocessor">#define</span> <span class="identifier">BOOST_TREE_NODE_EMPLACEMENT_CTOR_W_ALLOC_HEADER</span><span class="special">(</span><span class="identifier">z</span><span class="special">,</span> <span class="identifier">n</span><span class="special">,</span> <span class="identifier">Type</span><span class="special">)</span>          <span class="special">\</span>
+        <span class="identifier">BOOST_PP_EXPR_IF</span><span class="special">(</span><span class="identifier">n</span><span class="special">,</span> <span class="keyword">template</span> <span class="special"><)</span>                                      <span class="special">\</span>
+            <span class="identifier">BOOST_PP_ENUM_PARAMS_Z</span><span class="special">(</span><span class="identifier">z</span><span class="special">,</span> <span class="identifier">n</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">P</span><span class="special">)</span>                         <span class="special">\</span>
+        <span class="identifier">BOOST_PP_EXPR_IF</span><span class="special">(</span><span class="identifier">n</span><span class="special">,</span> <span class="special">>)</span>                                               <span class="special">\</span>
+        <span class="identifier">BOOST_PP_EXPR_IIF</span><span class="special">(</span><span class="identifier">BOOST_PP_EQUAL</span><span class="special">(</span><span class="number">1</span><span class="special">,</span> <span class="identifier">n</span><span class="special">),</span> <span class="keyword">explicit</span><span class="special">)</span>                    <span class="special">\</span>
+        <span class="identifier">Type</span><span class="special">(</span>                                                                <span class="special">\</span>
+            <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">container</span><span class="special">::</span><span class="identifier">allocator_arg_t</span>                              <span class="special">\</span>
+          <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">traits</span><span class="special">::</span><span class="identifier">allocator_reference</span> <span class="identifier">allocator</span>                   <span class="special">\</span>
+            <span class="identifier">BOOST_PP_CAT</span><span class="special">(</span><span class="identifier">BOOST_PP_ENUM_TRAILING_</span><span class="special">,</span> <span class="identifier">z</span><span class="special">)(</span>                        <span class="special">\</span>
+                <span class="identifier">n</span>                                                            <span class="special">\</span>
+              <span class="special">,</span> <span class="identifier">BOOST_CONTAINER_PP_PARAM_LIST</span>                                <span class="special">\</span>
+              <span class="special">,</span> <span class="identifier">_</span>                                                            <span class="special">\</span>
+            <span class="special">)</span>                                                                <span class="special">\</span>
+        <span class="special">)</span>                                                                    <span class="special">\</span>
+</pre>
+<pre class="programlisting"><span class="preprocessor">#define</span> <span class="identifier">BOOST_TREE_NODE_EMPLACEMENT_CTOR_W_ALLOC_FWD_DECL</span><span class="special">(</span><span class="identifier">z</span><span class="special">,</span> <span class="identifier">n</span><span class="special">,</span> <span class="identifier">Type</span><span class="special">)</span>        <span class="special">\</span>
+        <span class="identifier">BOOST_TREE_NODE_EMPLACEMENT_CTOR_W_ALLOC_HEADER</span><span class="special">(</span><span class="identifier">z</span><span class="special">,</span> <span class="identifier">n</span><span class="special">,</span> <span class="identifier">Type</span><span class="special">);</span>         <span class="special">\</span>
+</pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.emplace_ctor_w_alloc_f_dcl.description"></a><a class="link" href="emplace_ctor_w_alloc_f_dcl.html#tree_node.reference.emplace_ctor_w_alloc_f_dcl.description" title="Description">Description</a>
+</h4></div></div></div>
+<p>
+          Defined only if the compiler does not support perfect forwarding, and meant
+          to be used in the <code class="computeroutput"><span class="keyword">public</span></code> scope
+          of a <a class="link" href="../concepts/base_tree_node.html" title="Base Tree Node"><span class="bold"><strong>Base
+          Tree Node</strong></span></a>, this macro expands to the forward declaration
+          of a constructor that will emulate it.
+        </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.emplace_ctor_w_alloc_f_dcl.usage"></a><a class="link" href="emplace_ctor_w_alloc_f_dcl.html#tree_node.reference.emplace_ctor_w_alloc_f_dcl.usage" title="Usage">Usage</a>
+</h4></div></div></div>
+<pre class="programlisting"><span class="keyword">class</span> <span class="identifier">some_node_type</span>
+<span class="special">{</span>
+ <span class="keyword">public</span><span class="special">:</span>
+    <span class="keyword">typedef</span> <span class="identifier">unspecified</span> <span class="identifier">traits</span><span class="special">;</span>
+
+<span class="preprocessor">#if</span> <span class="identifier">defined</span> <span class="identifier">BOOST_CONTAINER_PERFECT_FORWARDING</span>
+    <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="special">...</span><span class="identifier">Args</span><span class="special">></span>
+    <span class="keyword">explicit</span> <span class="identifier">some_node_type</span><span class="special">(</span>
+        <span class="identifier">boost</span><span class="special">::</span><span class="identifier">container</span><span class="special">::</span><span class="identifier">allocator_arg_t</span>
+      <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">traits</span><span class="special">::</span><span class="identifier">allocator_reference</span> <span class="identifier">allocator</span>
+      <span class="special">,</span> <span class="identifier">Args</span><span class="special">&&</span> <span class="special">...</span><span class="identifier">args</span>
+    <span class="special">);</span>
+<span class="preprocessor">#else</span>
+    BOOST_PP_REPEAT<span class="special">(</span>
+        <span class="identifier">BOOST_CONTAINER_MAX_CONSTRUCTOR_PARAMETERS</span>
+      <span class="special">,</span> <span class="identifier">BOOST_TREE_NODE_EMPLACEMENT_CTOR_W_ALLOC_FWD_DECL</span>
+      <span class="special">,</span> <span class="identifier">some_node_type</span>
+    <span class="special">)</span>
+<span class="preprocessor">#endif</span>
+<span class="special">};</span>
+</pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.emplace_ctor_w_alloc_f_dcl.arguments"></a><a class="link" href="emplace_ctor_w_alloc_f_dcl.html#tree_node.reference.emplace_ctor_w_alloc_f_dcl.arguments" title="Arguments">Arguments</a>
+</h4></div></div></div>
+<div class="variablelist">
+<p class="title"><b>Notation</b></p>
+<dl class="variablelist">
+<dt><span class="term"><code class="computeroutput"><span class="identifier">z</span></code></span></dt>
+<dd><p>
+                The next available BOOST_PP_REPEAT dimension.
+              </p></dd>
+<dt><span class="term"><code class="computeroutput"><span class="identifier">n</span></code></span></dt>
+<dd><p>
+                The number of arguments that the current iteration's constructor
+                will accept.
+              </p></dd>
+<dt><span class="term"><code class="computeroutput"><span class="identifier">Type</span></code></span></dt>
+<dd><p>
+                The name of the enclosing type.
+              </p></dd>
+</dl>
+</div>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.emplace_ctor_w_alloc_f_dcl.definition"></a><a class="link" href="emplace_ctor_w_alloc_f_dcl.html#tree_node.reference.emplace_ctor_w_alloc_f_dcl.definition" title="Where defined">Where
+        defined</a>
+</h4></div></div></div>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span>boost/tree_node/preprocessor.hpp<span class="special">></span>
+</pre>
+</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-2013 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="emplace_ctor_inline_def.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="emplace_ctor_w_alloc_i_hdr.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/emplace_ctor_w_alloc_i_def.html
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/emplace_ctor_w_alloc_i_def.html	2013-07-07 14:52:52 EDT (Sun, 07 Jul 2013)	(r84977)
@@ -0,0 +1,125 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>BOOST_TREE_NODE_EMPLACEMENT_CTOR_W_ALLOC_INLINE_DEF</title>
+<link rel="stylesheet" href="http://www.boost.org/doc/libs/release/doc/src/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.77.1">
+<link rel="home" href="../../index.html" title="Chapter 1. tree_node 0.5">
+<link rel="up" href="../reference.html" title="Reference">
+<link rel="prev" href="emplace_ctor_w_alloc_i_hdr.html" title="BOOST_TREE_NODE_EMPLACEMENT_CTOR_W_ALLOC_INLINE_HEADER">
+<link rel="next" href="can_use_fusion.html" title="BOOST_TREE_NODE_CAN_USE_FUSION">
+</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="emplace_ctor_w_alloc_i_hdr.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="can_use_fusion.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="tree_node.reference.emplace_ctor_w_alloc_i_def"></a><a class="link" href="emplace_ctor_w_alloc_i_def.html" title="BOOST_TREE_NODE_EMPLACEMENT_CTOR_W_ALLOC_INLINE_DEF"><code class="computeroutput"><span class="identifier">BOOST_TREE_NODE_EMPLACEMENT_CTOR_W_ALLOC_INLINE_DEF</span></code>
+      </a>
+</h3></div></div></div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.emplace_ctor_w_alloc_i_def.synopsis"></a><a class="link" href="emplace_ctor_w_alloc_i_def.html#tree_node.reference.emplace_ctor_w_alloc_i_def.synopsis" title="Synopsis">Synopsis</a>
+</h4></div></div></div>
+<pre class="programlisting"><span class="preprocessor">#define</span> <span class="identifier">BOOST_TREE_NODE_EMPLACEMENT_CTOR_W_ALLOC_INLINE_DEF</span><span class="special">(</span><span class="identifier">z</span><span class="special">,</span> <span class="identifier">n</span><span class="special">,</span> <span class="identifier">tuple</span><span class="special">)</span>     <span class="special">\</span>
+        <span class="identifier">BOOST_TREE_NODE_EMPLACEMENT_CTOR_W_ALLOC_INLINE_HEADER</span><span class="special">(</span><span class="identifier">z</span><span class="special">,</span> <span class="identifier">n</span><span class="special">,</span> <span class="identifier">tuple</span><span class="special">)</span>  <span class="special">\</span>
+        <span class="special">{</span>                                                                    <span class="special">\</span>
+            <span class="identifier">BOOST_PP_TUPLE_ELEM</span><span class="special">(</span>                                             <span class="special">\</span>
+                <span class="number">2</span>                                                            <span class="special">\</span>
+              <span class="special">,</span> <span class="number">1</span>                                                            <span class="special">\</span>
+              <span class="special">,</span> <span class="identifier">tuple</span>                                                        <span class="special">\</span>
+            <span class="special">)::</span><span class="identifier">on_post_emplacement_construct</span><span class="special">();</span>                              <span class="special">\</span>
+        <span class="special">}</span>                                                                    <span class="special">\</span>
+</pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.emplace_ctor_w_alloc_i_def.description"></a><a class="link" href="emplace_ctor_w_alloc_i_def.html#tree_node.reference.emplace_ctor_w_alloc_i_def.description" title="Description">Description</a>
+</h4></div></div></div>
+<p>
+          Defined only if the compiler does not support perfect forwarding, and meant
+          to be used in the <code class="computeroutput"><span class="keyword">public</span></code> scope
+          of a <a class="link" href="../concepts/tree_node.html" title="Tree Node"><span class="bold"><strong>Tree
+          Node</strong></span></a> model that inherits from a <a class="link" href="../concepts/base_tree_node.html" title="Base Tree Node"><span class="bold"><strong>Base Tree Node</strong></span></a> and defines no additional
+          members, this macro expands to the inline definition of a constructor that
+          will emulate it. Uses <a class="link" href="emplace_ctor_w_alloc_i_hdr.html" title="BOOST_TREE_NODE_EMPLACEMENT_CTOR_W_ALLOC_INLINE_HEADER"><code class="computeroutput"><span class="identifier">BOOST_TREE_NODE_EMPLACEMENT_CTOR_W_ALLOC_INLINE_HEADER</span></code></a>.
+        </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.emplace_ctor_w_alloc_i_def.usage"></a><a class="link" href="emplace_ctor_w_alloc_i_def.html#tree_node.reference.emplace_ctor_w_alloc_i_def.usage" title="Usage">Usage</a>
+</h4></div></div></div>
+<pre class="programlisting"><span class="keyword">class</span> <span class="identifier">Derived</span> <span class="special">:</span> <span class="keyword">public</span> <span class="identifier">Base</span>
+<span class="special">{</span>
+ <span class="keyword">public</span><span class="special">:</span>
+    <span class="keyword">typedef</span> <span class="keyword">typename</span> <span class="identifier">Base</span><span class="special">::</span><span class="identifier">traits</span> <span class="identifier">traits</span><span class="special">;</span>
+
+<span class="preprocessor">#if</span> <span class="identifier">defined</span> <span class="identifier">BOOST_CONTAINER_PERFECT_FORWARDING</span>
+    <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="special">...</span><span class="identifier">Args</span><span class="special">></span>
+    <span class="keyword">inline</span> <span class="keyword">explicit</span> <span class="identifier">Derived</span><span class="special">(</span>
+        <span class="identifier">boost</span><span class="special">::</span><span class="identifier">container</span><span class="special">::</span><span class="identifier">allocator_arg_t</span>
+      <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">traits</span><span class="special">::</span><span class="identifier">allocator_reference</span> <span class="identifier">allocator</span>
+      <span class="special">,</span> <span class="identifier">Args</span><span class="special">&&</span> <span class="special">...</span><span class="identifier">args</span>
+    <span class="special">)</span> <span class="special">:</span> <span class="identifier">Base</span><span class="special">(</span>
+            <span class="identifier">boost</span><span class="special">::</span><span class="identifier">container</span><span class="special">::</span><span class="identifier">allocator_arg</span>
+          <span class="special">,</span> <span class="identifier">allocator</span>
+          <span class="special">,</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">forward</span><span class="special"><</span><span class="identifier">Args</span><span class="special">>(</span><span class="identifier">args</span><span class="special">)...</span>
+        <span class="special">)</span>
+    <span class="special">{</span>
+        <span class="identifier">Base</span><span class="special">::</span><span class="identifier">on_post_emplacement_construct</span><span class="special">();</span>
+    <span class="special">}</span>
+<span class="preprocessor">#else</span>
+    BOOST_PP_REPEAT<span class="special">(</span>
+        <span class="identifier">BOOST_CONTAINER_MAX_CONSTRUCTOR_PARAMETERS</span>
+      <span class="special">,</span> <span class="identifier">BOOST_TREE_NODE_EMPLACEMENT_CTOR_W_ALLOC_INLINE_DEF</span>
+      <span class="special">,</span> <span class="special">(</span><span class="identifier">Derived</span><span class="special">,</span> <span class="identifier">Base</span><span class="special">)</span>
+    <span class="special">)</span>
+<span class="preprocessor">#endif</span>
+<span class="special">};</span>
+</pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.emplace_ctor_w_alloc_i_def.arguments"></a><a class="link" href="emplace_ctor_w_alloc_i_def.html#tree_node.reference.emplace_ctor_w_alloc_i_def.arguments" title="Arguments">Arguments</a>
+</h4></div></div></div>
+<div class="variablelist">
+<p class="title"><b>Notation</b></p>
+<dl class="variablelist">
+<dt><span class="term"><code class="computeroutput"><span class="identifier">Derived</span></code></span></dt>
+<dd><p>
+                The name of the enclosing type.
+              </p></dd>
+<dt><span class="term"><code class="computeroutput"><span class="identifier">Base</span></code></span></dt>
+<dd><p>
+                The name of the type from which <code class="computeroutput"><span class="identifier">Derived</span></code>
+                inherits.
+              </p></dd>
+</dl>
+</div>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.emplace_ctor_w_alloc_i_def.definition"></a><a class="link" href="emplace_ctor_w_alloc_i_def.html#tree_node.reference.emplace_ctor_w_alloc_i_def.definition" title="Where defined">Where
+        defined</a>
+</h4></div></div></div>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span>boost/tree_node/preprocessor.hpp<span class="special">></span>
+</pre>
+</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-2013 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="emplace_ctor_w_alloc_i_hdr.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="can_use_fusion.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/emplace_ctor_w_alloc_i_hdr.html
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/emplace_ctor_w_alloc_i_hdr.html	2013-07-07 14:52:52 EDT (Sun, 07 Jul 2013)	(r84977)
@@ -0,0 +1,170 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>BOOST_TREE_NODE_EMPLACEMENT_CTOR_W_ALLOC_INLINE_HEADER</title>
+<link rel="stylesheet" href="http://www.boost.org/doc/libs/release/doc/src/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.77.1">
+<link rel="home" href="../../index.html" title="Chapter 1. tree_node 0.5">
+<link rel="up" href="../reference.html" title="Reference">
+<link rel="prev" href="emplace_ctor_w_alloc_f_dcl.html" title="BOOST_TREE_NODE_EMPLACEMENT_CTOR_W_ALLOC_FWD_DECL">
+<link rel="next" href="emplace_ctor_w_alloc_i_def.html" title="BOOST_TREE_NODE_EMPLACEMENT_CTOR_W_ALLOC_INLINE_DEF">
+</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="emplace_ctor_w_alloc_f_dcl.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="emplace_ctor_w_alloc_i_def.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="tree_node.reference.emplace_ctor_w_alloc_i_hdr"></a><a class="link" href="emplace_ctor_w_alloc_i_hdr.html" title="BOOST_TREE_NODE_EMPLACEMENT_CTOR_W_ALLOC_INLINE_HEADER"><code class="computeroutput"><span class="identifier">BOOST_TREE_NODE_EMPLACEMENT_CTOR_W_ALLOC_INLINE_HEADER</span></code>
+      </a>
+</h3></div></div></div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.emplace_ctor_w_alloc_i_hdr.synopsis"></a><a class="link" href="emplace_ctor_w_alloc_i_hdr.html#tree_node.reference.emplace_ctor_w_alloc_i_hdr.synopsis" title="Synopsis">Synopsis</a>
+</h4></div></div></div>
+<pre class="programlisting"><span class="preprocessor">#define</span> <span class="identifier">BOOST_TREE_NODE_EMPLACEMENT_CTOR_W_ALLOC_HEADER</span><span class="special">(</span><span class="identifier">z</span><span class="special">,</span> <span class="identifier">n</span><span class="special">,</span> <span class="identifier">Type</span><span class="special">)</span>          <span class="special">\</span>
+        <span class="identifier">BOOST_PP_EXPR_IF</span><span class="special">(</span><span class="identifier">n</span><span class="special">,</span> <span class="keyword">template</span> <span class="special"><)</span>                                      <span class="special">\</span>
+            <span class="identifier">BOOST_PP_ENUM_PARAMS_Z</span><span class="special">(</span><span class="identifier">z</span><span class="special">,</span> <span class="identifier">n</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">P</span><span class="special">)</span>                         <span class="special">\</span>
+        <span class="identifier">BOOST_PP_EXPR_IF</span><span class="special">(</span><span class="identifier">n</span><span class="special">,</span> <span class="special">>)</span>                                               <span class="special">\</span>
+        <span class="identifier">BOOST_PP_EXPR_IIF</span><span class="special">(</span><span class="identifier">BOOST_PP_EQUAL</span><span class="special">(</span><span class="number">1</span><span class="special">,</span> <span class="identifier">n</span><span class="special">),</span> <span class="keyword">explicit</span><span class="special">)</span>                    <span class="special">\</span>
+        <span class="identifier">Type</span><span class="special">(</span>                                                                <span class="special">\</span>
+            <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">container</span><span class="special">::</span><span class="identifier">allocator_arg_t</span>                              <span class="special">\</span>
+          <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">traits</span><span class="special">::</span><span class="identifier">allocator_reference</span> <span class="identifier">allocator</span>                   <span class="special">\</span>
+            <span class="identifier">BOOST_PP_CAT</span><span class="special">(</span><span class="identifier">BOOST_PP_ENUM_TRAILING_</span><span class="special">,</span> <span class="identifier">z</span><span class="special">)(</span>                        <span class="special">\</span>
+                <span class="identifier">n</span>                                                            <span class="special">\</span>
+              <span class="special">,</span> <span class="identifier">BOOST_CONTAINER_PP_PARAM_LIST</span>                                <span class="special">\</span>
+              <span class="special">,</span> <span class="identifier">_</span>                                                            <span class="special">\</span>
+            <span class="special">)</span>                                                                <span class="special">\</span>
+        <span class="special">)</span>                                                                    <span class="special">\</span>
+</pre>
+<pre class="programlisting"><span class="preprocessor">#define</span> <span class="identifier">BOOST_TREE_NODE_EMPLACEMENT_CTOR_W_ALLOC_BASE_FWD</span><span class="special">(</span><span class="identifier">z</span><span class="special">,</span> <span class="identifier">n</span><span class="special">,</span> <span class="identifier">Base</span><span class="special">)</span>        <span class="special">\</span>
+      <span class="special">:</span> <span class="identifier">Base</span><span class="special">(</span>                                                                <span class="special">\</span>
+            <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">container</span><span class="special">::</span><span class="identifier">allocator_arg</span>                                <span class="special">\</span>
+          <span class="special">,</span> <span class="identifier">allocator</span>                                                        <span class="special">\</span>
+            <span class="identifier">BOOST_PP_CAT</span><span class="special">(</span><span class="identifier">BOOST_PP_ENUM_TRAILING_</span><span class="special">,</span> <span class="identifier">z</span><span class="special">)(</span>                        <span class="special">\</span>
+                <span class="identifier">n</span>                                                            <span class="special">\</span>
+              <span class="special">,</span> <span class="identifier">BOOST_CONTAINER_PP_PARAM_FORWARD</span>                             <span class="special">\</span>
+              <span class="special">,</span> <span class="identifier">_</span>                                                            <span class="special">\</span>
+            <span class="special">)</span>                                                                <span class="special">\</span>
+        <span class="special">)</span>                                                                    <span class="special">\</span>
+</pre>
+<pre class="programlisting"><span class="preprocessor">#define</span> <span class="identifier">BOOST_TREE_NODE_EMPLACEMENT_CTOR_W_ALLOC_INLINE_HEADER</span><span class="special">(</span><span class="identifier">z</span><span class="special">,</span> <span class="identifier">n</span><span class="special">,</span> <span class="identifier">tuple</span><span class="special">)</span>  <span class="special">\</span>
+        <span class="identifier">BOOST_TREE_NODE_EMPLACEMENT_CTOR_W_ALLOC_HEADER</span><span class="special">(</span>                     <span class="special">\</span>
+            <span class="identifier">z</span>                                                                <span class="special">\</span>
+          <span class="special">,</span> <span class="identifier">n</span>                                                                <span class="special">\</span>
+          <span class="special">,</span> <span class="identifier">BOOST_PP_TUPLE_ELEM</span><span class="special">(</span><span class="number">2</span><span class="special">,</span> <span class="number">0</span><span class="special">,</span> <span class="identifier">tuple</span><span class="special">)</span>                                 <span class="special">\</span>
+        <span class="special">)</span>                                                                    <span class="special">\</span>
+        <span class="identifier">BOOST_TREE_NODE_EMPLACEMENT_CTOR_W_ALLOC_BASE_FWD</span><span class="special">(</span>                   <span class="special">\</span>
+            <span class="identifier">z</span>                                                                <span class="special">\</span>
+          <span class="special">,</span> <span class="identifier">n</span>                                                                <span class="special">\</span>
+          <span class="special">,</span> <span class="identifier">BOOST_PP_TUPLE_ELEM</span><span class="special">(</span><span class="number">2</span><span class="special">,</span> <span class="number">1</span><span class="special">,</span> <span class="identifier">tuple</span><span class="special">)</span>                                 <span class="special">\</span>
+        <span class="special">)</span>                                                                    <span class="special">\</span>
+</pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.emplace_ctor_w_alloc_i_hdr.description"></a><a class="link" href="emplace_ctor_w_alloc_i_hdr.html#tree_node.reference.emplace_ctor_w_alloc_i_hdr.description" title="Description">Description</a>
+</h4></div></div></div>
+<p>
+          Defined only if the compiler does not support perfect forwarding, this
+          macro expands to the header of a constructor that emulates it along witht
+          the first part of its initialization list.
+        </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.emplace_ctor_w_alloc_i_hdr.usage"></a><a class="link" href="emplace_ctor_w_alloc_i_hdr.html#tree_node.reference.emplace_ctor_w_alloc_i_hdr.usage" title="Usage">Usage</a>
+</h4></div></div></div>
+<pre class="programlisting"><span class="keyword">class</span> <span class="identifier">Derived</span> <span class="special">:</span> <span class="keyword">public</span> <span class="identifier">Base</span>
+<span class="special">{</span>
+    <span class="keyword">int</span> <span class="identifier">some_member</span><span class="special">;</span>
+
+    <span class="keyword">void</span> <span class="identifier">post_construct</span><span class="special">(</span><span class="keyword">int</span><span class="special">);</span>
+
+ <span class="keyword">public</span><span class="special">:</span>
+<span class="preprocessor">#if</span> <span class="identifier">defined</span> <span class="identifier">BOOST_CONTAINER_PERFECT_FORWARDING</span>
+    <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="special">...</span><span class="identifier">Args</span><span class="special">></span>
+    <span class="keyword">inline</span> <span class="keyword">explicit</span> <span class="identifier">Derived</span><span class="special">(</span>
+        <span class="identifier">boost</span><span class="special">::</span><span class="identifier">container</span><span class="special">::</span><span class="identifier">allocator_arg_t</span>
+      <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">traits</span><span class="special">::</span><span class="identifier">allocator_reference</span> <span class="identifier">allocator</span>
+      <span class="special">,</span> <span class="identifier">Args</span><span class="special">&&</span> <span class="special">...</span><span class="identifier">args</span>
+    <span class="special">)</span> <span class="special">:</span> <span class="identifier">Base</span><span class="special">(</span>
+            <span class="identifier">boost</span><span class="special">::</span><span class="identifier">container</span><span class="special">::</span><span class="identifier">allocator_arg</span>
+          <span class="special">,</span> <span class="identifier">allocator</span>
+          <span class="special">,</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">forward</span><span class="special"><</span><span class="identifier">Args</span><span class="special">>(</span><span class="identifier">args</span><span class="special">)...</span>
+        <span class="special">)</span>
+      <span class="special">,</span> <span class="identifier">some_member</span><span class="special">(</span><span class="number">0</span><span class="special">)</span>
+    <span class="special">{</span>
+        <span class="keyword">this</span><span class="special">-></span><span class="identifier">post_construct</span><span class="special">(</span><span class="keyword">this</span><span class="special">-></span><span class="identifier">some_member</span><span class="special">);</span>
+    <span class="special">}</span>
+<span class="preprocessor">#else</span>
+<span class="preprocessor">#define</span> <span class="identifier">YOUR_MACRO</span><span class="special">(</span><span class="identifier">z</span><span class="special">,</span> <span class="identifier">n</span><span class="special">,</span> <span class="identifier">Tuple</span><span class="special">)</span> <span class="special">\</span>
+    <span class="identifier">BOOST_TREE_NODE_EMPLACEMENT_CTOR_W_ALLOC_INLINE_HEADER</span><span class="special">(</span><span class="identifier">z</span><span class="special">,</span> <span class="identifier">n</span><span class="special">,</span> <span class="identifier">Tuple</span><span class="special">)</span> <span class="special">\</span>
+      <span class="special">,</span> <span class="identifier">some_member</span><span class="special">(</span><span class="number">0</span><span class="special">)</span> <span class="special">\</span>
+    <span class="special">{</span> <span class="special">\</span>
+        <span class="keyword">this</span><span class="special">-></span><span class="identifier">post_construct</span><span class="special">(</span><span class="keyword">this</span><span class="special">-></span><span class="identifier">some_member</span><span class="special">);</span> <span class="special">\</span>
+    <span class="special">}</span> <span class="special">\</span>
+<span class="comment">//!</span>
+    BOOST_PP_REPEAT<span class="special">(</span>
+        <span class="identifier">BOOST_CONTAINER_MAX_CONSTRUCTOR_PARAMETERS</span>
+      <span class="special">,</span> <span class="identifier">YOUR_MACRO</span>
+      <span class="special">,</span> <span class="special">(</span><span class="identifier">Derived</span><span class="special">,</span> <span class="identifier">Base</span><span class="special">)</span>
+    <span class="special">)</span>
+<span class="preprocessor">#undef</span> <span class="identifier">YOUR_MACRO</span>
+<span class="preprocessor">#endif</span>
+<span class="special">};</span>
+</pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.emplace_ctor_w_alloc_i_hdr.arguments"></a><a class="link" href="emplace_ctor_w_alloc_i_hdr.html#tree_node.reference.emplace_ctor_w_alloc_i_hdr.arguments" title="Arguments">Arguments</a>
+</h4></div></div></div>
+<div class="variablelist">
+<p class="title"><b>Notation</b></p>
+<dl class="variablelist">
+<dt><span class="term"><code class="computeroutput"><span class="identifier">z</span></code></span></dt>
+<dd><p>
+                The next available BOOST_PP_REPEAT dimension.
+              </p></dd>
+<dt><span class="term"><code class="computeroutput"><span class="identifier">n</span></code></span></dt>
+<dd><p>
+                The number of arguments that the current iteration's constructor
+                will accept.
+              </p></dd>
+<dt><span class="term"><code class="computeroutput"><span class="identifier">Derived</span></code></span></dt>
+<dd><p>
+                The name of the enclosing type.
+              </p></dd>
+<dt><span class="term"><code class="computeroutput"><span class="identifier">Base</span></code></span></dt>
+<dd><p>
+                The name of the type from which <code class="computeroutput"><span class="identifier">Derived</span></code>
+                inherits.
+              </p></dd>
+</dl>
+</div>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.emplace_ctor_w_alloc_i_hdr.definition"></a><a class="link" href="emplace_ctor_w_alloc_i_hdr.html#tree_node.reference.emplace_ctor_w_alloc_i_hdr.definition" title="Where defined">Where
+        defined</a>
+</h4></div></div></div>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span>boost/tree_node/preprocessor.hpp<span class="special">></span>
+</pre>
+</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-2013 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="emplace_ctor_w_alloc_f_dcl.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="emplace_ctor_w_alloc_i_def.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/get_keys.html
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/get_keys.html	2013-07-07 14:52:52 EDT (Sun, 07 Jul 2013)	(r84977)
@@ -0,0 +1,93 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>result_of::get_keys<Node></title>
+<link rel="stylesheet" href="http://www.boost.org/doc/libs/release/doc/src/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.77.1">
+<link rel="home" href="../../index.html" title="Chapter 1. tree_node 0.5">
+<link rel="up" href="../reference.html" title="Reference">
+<link rel="prev" href="has_key.html" title="has_key()">
+<link rel="next" href="at_key.html" title="at_key<Key>">
+</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="has_key.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="at_key.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="tree_node.reference.get_keys"></a><a class="link" href="get_keys.html" title="result_of::get_keys<Node>"><code class="computeroutput"><span class="identifier">result_of</span><span class="special">::</span><span class="identifier">get_keys</span><span class="special"><</span><span class="identifier">Node</span><span class="special">></span></code></a>
+</h3></div></div></div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.get_keys.synopsis"></a><a class="link" href="get_keys.html#tree_node.reference.get_keys.synopsis" title="Synopsis">Synopsis</a>
+</h4></div></div></div>
+<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">namespace</span> <span class="identifier">result_of</span> <span class="special">{</span>
+
+    <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">Node</span><span class="special">></span>
+    <span class="keyword">struct</span> <span class="identifier">get_keys_impl</span>
+    <span class="special">{</span>
+        <span class="keyword">typedef</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">vector0</span><span class="special"><></span> <span class="identifier">type</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">Node</span><span class="special">></span>
+    <span class="keyword">class</span> <span class="identifier">get_keys</span>
+    <span class="special">{</span>
+        <span class="keyword">typedef</span> <span class="keyword">typename</span> <span class="identifier">Node</span><span class="special">::</span><span class="identifier">super_t</span> <span class="identifier">_base</span><span class="special">;</span>
+
+     <span class="keyword">public</span><span class="special">:</span>
+        <span class="keyword">typedef</span> <span class="keyword">typename</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">joint_view</span><span class="special"><</span>
+                    <span class="keyword">typename</span> <span class="identifier">get_keys_impl</span><span class="special"><</span><span class="identifier">Node</span><span class="special">>::</span><span class="identifier">type</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">mpl</span><span class="special">::</span><span class="identifier">eval_if</span><span class="special"><</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">is_void</span><span class="special"><</span><span class="identifier">_base</span><span class="special">></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">vector0</span><span class="special"><></span>
+                      <span class="special">,</span> <span class="identifier">get_keys</span><span class="special"><</span><span class="identifier">_base</span><span class="special">></span>
+                    <span class="special">>::</span><span class="identifier">type</span>
+                <span class="special">>::</span><span class="identifier">type</span>
+                <span class="identifier">type</span><span class="special">;</span>
+
+    <span class="special">};</span>
+<span class="special">}}}</span>  <span class="comment">// namespace boost::tree_node::result_of</span>
+</pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.get_keys.description"></a><a class="link" href="get_keys.html#tree_node.reference.get_keys.description" title="Description">Description</a>
+</h4></div></div></div>
+<p>
+          Let <code class="computeroutput"><span class="identifier">Node</span></code> be a (possibly
+          <code class="computeroutput"><span class="keyword">const</span></code>-qualified) <a class="link" href="../concepts/tree_node.html" title="Tree Node"><span class="bold"><strong>Tree Node</strong></span></a> model.
+        </p>
+<pre class="programlisting"><span class="keyword">typedef</span> <span class="identifier">result_of</span><span class="special">::</span><span class="identifier">get_keys</span><span class="special"><</span><span class="identifier">Node</span><span class="special">>::</span><span class="identifier">type</span> <span class="identifier">r</span><span class="special">;</span>
+</pre>
+<p>
+          <span class="bold"><strong>Return type:</strong></span> A Fusion Sequence of key types--each of which,
+          when passed along with <code class="computeroutput"><span class="identifier">Node</span></code>
+          as template arguments to <a class="link" href="has_key.html#tree_node.reference.has_key.result_of" title="Return Type Metafunction Synopsis"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">result_of</span><span class="special">::</span><span class="identifier">has_key</span><span class="special"><></span></code></a>,
+          will cause <a class="link" href="has_key.html#tree_node.reference.has_key.result_of" title="Return Type Metafunction Synopsis"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">result_of</span><span class="special">::</span><span class="identifier">has_key</span><span class="special"><></span></code></a>
+          to evaluate to boost::mpl::true_.
+        </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.get_keys.definition"></a><a class="link" href="get_keys.html#tree_node.reference.get_keys.definition" title="Where defined">Where defined</a>
+</h4></div></div></div>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span>boost/tree_node/intrinsic/get_keys.hpp<span class="special">></span>
+</pre>
+</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-2013 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="has_key.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="at_key.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/get_properties.html
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/get_properties.html	2013-07-07 14:52:52 EDT (Sun, 07 Jul 2013)	(r84977)
@@ -0,0 +1,107 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>get_properties()</title>
+<link rel="stylesheet" href="http://www.boost.org/doc/libs/release/doc/src/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.77.1">
+<link rel="home" href="../../index.html" title="Chapter 1. tree_node 0.5">
+<link rel="up" href="../reference.html" title="Reference">
+<link rel="prev" href="dereference_iterator.html" title="dereference_iterator()">
+<link rel="next" href="has_key.html" title="has_key()">
+</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="dereference_iterator.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="has_key.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="tree_node.reference.get_properties"></a><a class="link" href="get_properties.html" title="get_properties()"><code class="computeroutput"><span class="identifier">get_properties</span><span class="special">()</span></code></a>
+</h3></div></div></div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.get_properties.func_synopsis"></a><a class="link" href="get_properties.html#tree_node.reference.get_properties.func_synopsis" title="Function Synopsis">Function
+        Synopsis</a>
+</h4></div></div></div>
+<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">Node</span><span class="special">></span>
+    <span class="keyword">typename</span> <span class="identifier">result_of</span><span class="special">::</span><span class="identifier">get_properties</span><span class="special"><</span><span class="identifier">Node</span> <span class="keyword">const</span><span class="special">>::</span><span class="identifier">type</span>
+        <span class="identifier">get_properties</span><span class="special">(</span><span class="identifier">Node</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">Node</span><span class="special">></span>
+    <span class="keyword">typename</span> <span class="identifier">result_of</span><span class="special">::</span><span class="identifier">get_properties</span><span class="special"><</span><span class="identifier">Node</span><span class="special">>::</span><span class="identifier">type</span>
+        <span class="identifier">get_properties</span><span class="special">(</span><span class="identifier">Node</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>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.get_properties.func_description"></a><a class="link" href="get_properties.html#tree_node.reference.get_properties.func_description" title="Function Description">Function
+        Description</a>
+</h4></div></div></div>
+<p>
+          This function returns a heterogeneous list of key types--each of which,
+          when passed as a template argument to <a class="link" href="has_key.html" title="has_key()"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">has_key</span><span class="special">()</span></code></a>
+          while the <a class="link" href="../concepts/tree_node.html" title="Tree Node"><span class="bold"><strong>Tree
+          Node</strong></span></a> object is passed by reference, will evaluate to
+          <code class="computeroutput"><span class="keyword">true</span></code>--each paired with the
+          value returned through key-value access of the specified node.
+        </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.get_properties.result_of"></a><a class="link" href="get_properties.html#tree_node.reference.get_properties.result_of" title="Return Type Metafunction Synopsis">Return
+        Type Metafunction Synopsis</a>
+</h4></div></div></div>
+<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">namespace</span> <span class="identifier">result_of</span> <span class="special">{</span>
+
+    <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">Node</span><span class="special">></span>
+    <span class="keyword">struct</span> <span class="identifier">get_properties</span>
+    <span class="special">{</span>
+        <span class="keyword">typedef</span> <span class="identifier">unspecified</span> <span class="identifier">type</span><span class="special">;</span>
+    <span class="special">};</span>
+<span class="special">}}}</span>  <span class="comment">// namespace boost::tree_node::result_of</span>
+</pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.get_properties.result_of_description"></a><a class="link" href="get_properties.html#tree_node.reference.get_properties.result_of_description" title="Return Type Metafunction Description">Return
+        Type Metafunction Description</a>
+</h4></div></div></div>
+<p>
+          Let <code class="computeroutput"><span class="identifier">Node</span></code> be a (possibly
+          <code class="computeroutput"><span class="keyword">const</span></code>-qualified) <a class="link" href="../concepts/tree_node.html" title="Tree Node"><span class="bold"><strong>Tree Node</strong></span></a> model.
+        </p>
+<pre class="programlisting"><span class="keyword">typedef</span> <span class="identifier">result_of</span><span class="special">::</span><span class="identifier">get_properties</span><span class="special"><</span><span class="identifier">Node</span><span class="special">>::</span><span class="identifier">type</span> <span class="identifier">r</span><span class="special">;</span>
+</pre>
+<p>
+          <span class="bold"><strong>Return type:</strong></span> A Fusion Sequence of <a href="http://www.boost.org/libs/fusion/doc/html/fusion/support/pair.html" target="_top">half-runtime
+          pairs</a> of key types and their matching value types as defined by
+          the specified node type.
+        </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.get_properties.definition"></a><a class="link" href="get_properties.html#tree_node.reference.get_properties.definition" title="Where defined">Where
+        defined</a>
+</h4></div></div></div>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span>boost/tree_node/intrinsic/get_properties.hpp<span class="special">></span>
+</pre>
+</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-2013 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="dereference_iterator.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="has_key.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/has_key.html
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/has_key.html	2013-07-07 14:52:52 EDT (Sun, 07 Jul 2013)	(r84977)
@@ -0,0 +1,108 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>has_key()</title>
+<link rel="stylesheet" href="http://www.boost.org/doc/libs/release/doc/src/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.77.1">
+<link rel="home" href="../../index.html" title="Chapter 1. tree_node 0.5">
+<link rel="up" href="../reference.html" title="Reference">
+<link rel="prev" href="get_properties.html" title="get_properties()">
+<link rel="next" href="get_keys.html" title="result_of::get_keys<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="get_properties.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="get_keys.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="tree_node.reference.has_key"></a><a class="link" href="has_key.html" title="has_key()"><code class="computeroutput"><span class="identifier">has_key</span><span class="special">()</span></code></a>
+</h3></div></div></div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.has_key.func_synopsis"></a><a class="link" href="has_key.html#tree_node.reference.has_key.func_synopsis" title="Function Synopsis">Function
+        Synopsis</a>
+</h4></div></div></div>
+<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">Node</span><span class="special">></span>
+    <span class="keyword">typename</span> <span class="identifier">result_of</span><span class="special">::</span><span class="identifier">has_key</span><span class="special"><</span><span class="identifier">Node</span><span class="special">,</span><span class="identifier">Key</span><span class="special">>::</span><span class="identifier">type</span> <span class="identifier">has_key</span><span class="special">(</span><span class="identifier">Node</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>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.has_key.func_description"></a><a class="link" href="has_key.html#tree_node.reference.has_key.func_description" title="Function Description">Function
+        Description</a>
+</h4></div></div></div>
+<p>
+          This function returns <code class="computeroutput"><span class="keyword">true</span></code>
+          if the matching value exists in the specified node--that is, if <code class="computeroutput"><span class="identifier">get</span><span class="special">(</span><span class="identifier">node</span><span class="special">,</span> <span class="identifier">Key</span><span class="special">())</span></code>
+          and <code class="computeroutput"><span class="identifier">get</span><span class="special"><</span><span class="identifier">Key</span><span class="special">>(</span><span class="identifier">node</span><span class="special">)</span></code>
+          are well-formed expressions--<code class="computeroutput"><span class="keyword">false</span></code>
+          otherwise.
+        </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.has_key.result_of"></a><a class="link" href="has_key.html#tree_node.reference.has_key.result_of" title="Return Type Metafunction Synopsis">Return Type
+        Metafunction Synopsis</a>
+</h4></div></div></div>
+<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">namespace</span> <span class="identifier">result_of</span> <span class="special">{</span>
+
+    <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">Node</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Key</span><span class="special">></span>
+    <span class="keyword">struct</span> <span class="identifier">has_key_impl</span> <span class="special">:</span> <span class="identifier">has_key_impl</span><span class="special"><</span><span class="keyword">typename</span> <span class="identifier">Node</span><span class="special">::</span><span class="identifier">super_t</span><span class="special">,</span><span class="identifier">Key</span><span class="special">></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">Key</span><span class="special">></span>
+    <span class="keyword">struct</span> <span class="identifier">has_key_impl</span><span class="special"><</span><span class="keyword">void</span><span class="special">,</span><span class="identifier">Key</span><span class="special">></span> <span class="special">:</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">false_</span>
+    <span class="special">{</span>
+    <span class="special">};</span>
+
+    <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">Node</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Key</span><span class="special">></span>
+    <span class="keyword">struct</span> <span class="identifier">has_key</span> <span class="special">:</span> <span class="identifier">has_key_impl</span><span class="special"><</span><span class="identifier">Node</span><span class="special">,</span><span class="identifier">Key</span><span class="special">>::</span><span class="identifier">type</span>
+    <span class="special">{</span>
+    <span class="special">};</span>
+<span class="special">}}}</span>  <span class="comment">// namespace boost::tree_node::result_of</span>
+</pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.has_key.result_of_description"></a><a class="link" href="has_key.html#tree_node.reference.has_key.result_of_description" title="Return Type Metafunction Description">Return
+        Type Metafunction Description</a>
+</h4></div></div></div>
+<p>
+          Let <code class="computeroutput"><span class="identifier">Node</span></code> be a (possibly
+          <code class="computeroutput"><span class="keyword">const</span></code>-qualified) <a class="link" href="../concepts/tree_node.html" title="Tree Node"><span class="bold"><strong>Tree Node</strong></span></a> model.
+        </p>
+<pre class="programlisting"><span class="keyword">typedef</span> <span class="identifier">result_of</span><span class="special">::</span><span class="identifier">has_key</span><span class="special"><</span><span class="identifier">Node</span><span class="special">></span> <span class="identifier">r</span><span class="special">;</span>
+</pre>
+<p>
+          <span class="bold"><strong>Return type:</strong></span> boost::mpl::true_ if, in any <code class="computeroutput"><span class="identifier">Node</span> <span class="identifier">node</span></code>,
+          the matching value exists--that is, if <code class="computeroutput"><span class="identifier">get</span><span class="special">(</span><span class="identifier">node</span><span class="special">,</span> <span class="identifier">Key</span><span class="special">())</span></code> and <code class="computeroutput"><span class="identifier">get</span><span class="special"><</span><span class="identifier">Key</span><span class="special">>(</span><span class="identifier">node</span><span class="special">)</span></code> are well-formed expressions--boost::mpl::false_ otherwise.
+        </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.has_key.definition"></a><a class="link" href="has_key.html#tree_node.reference.has_key.definition" title="Where defined">Where defined</a>
+</h4></div></div></div>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span>boost/tree_node/intrinsic/has_key.hpp<span class="special">></span>
+</pre>
+</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-2013 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="get_properties.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="get_keys.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/height_key.html
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/height_key.html	2013-07-07 14:52:52 EDT (Sun, 07 Jul 2013)	(r84977)
@@ -0,0 +1,72 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>height_key</title>
+<link rel="stylesheet" href="http://www.boost.org/doc/libs/release/doc/src/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.77.1">
+<link rel="home" href="../../index.html" title="Chapter 1. tree_node 0.5">
+<link rel="up" href="../reference.html" title="Reference">
+<link rel="prev" href="count_key.html" title="count_key">
+<link rel="next" href="position_key.html" title="position_key">
+</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="count_key.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="position_key.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="tree_node.reference.height_key"></a><a class="link" href="height_key.html" title="height_key"><code class="computeroutput"><span class="identifier">height_key</span></code></a>
+</h3></div></div></div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.height_key.synopsis"></a><a class="link" href="height_key.html#tree_node.reference.height_key.synopsis" title="Synopsis">Synopsis</a>
+</h4></div></div></div>
+<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">struct</span> <span class="identifier">height_key</span>
+    <span class="special">{</span>
+    <span class="special">};</span>
+<span class="special">}}</span>  <span class="comment">// namespace boost::tree_node</span>
+</pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.height_key.description"></a><a class="link" href="height_key.html#tree_node.reference.height_key.description" title="Description">Description</a>
+</h4></div></div></div>
+<p>
+          Use this type to access the <span class="bold"><strong>height</strong></span> of
+          a <a class="link" href="../concepts/tree_node.html" title="Tree Node"><span class="bold"><strong>Tree
+          Node</strong></span></a> object, or the magnitude of the difference in ply
+          between it and its deepest descendant. The <a class="link" href="../concepts/tree_node.html" title="Tree Node"><span class="bold"><strong>Tree Node</strong></span></a> type must ultimately inherit from
+          <a class="link" href="with_height_base.html" title="with_height_base<Derived,BaseGenerator,T1,T2,Height>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">with_height_base</span></code></a>.
+        </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.height_key.definition"></a><a class="link" href="height_key.html#tree_node.reference.height_key.definition" title="Where defined">Where defined</a>
+</h4></div></div></div>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span>boost/tree_node/key/height.hpp<span class="special">></span>
+</pre>
+<p>
+          To register under Boost.Typeof:
+        </p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span>boost/typeof/boost/tree_node/key/height.hpp<span class="special">></span>
+</pre>
+</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-2013 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="count_key.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="position_key.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/in_order_iterator.html
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/in_order_iterator.html	2013-07-07 14:52:52 EDT (Sun, 07 Jul 2013)	(r84977)
@@ -0,0 +1,810 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>in_order_iterator<Node,IsReverse></title>
+<link rel="stylesheet" href="http://www.boost.org/doc/libs/release/doc/src/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.77.1">
+<link rel="home" href="../../index.html" title="Chapter 1. tree_node 0.5">
+<link rel="up" href="../reference.html" title="Reference">
+<link rel="prev" href="post_order_desc_iter.html" title="post_order_descendant_iterator<Node,IsReverse>">
+<link rel="next" href="depth_first_iterator.html" title="depth_first_iterator<Node,IsReverse>">
+</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_desc_iter.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="depth_first_iterator.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="tree_node.reference.in_order_iterator"></a><a class="link" href="in_order_iterator.html" title="in_order_iterator<Node,IsReverse>"><code class="computeroutput"><span class="identifier">in_order_iterator</span><span class="special"><</span><span class="identifier">Node</span><span class="special">,</span><span class="identifier">IsReverse</span><span class="special">></span></code></a>
+</h3></div></div></div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.in_order_iterator.synopsis"></a><a class="link" href="in_order_iterator.html#tree_node.reference.in_order_iterator.synopsis" title="Synopsis">Synopsis</a>
+</h4></div></div></div>
+<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">Node</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">IsReverse</span> <span class="special">=</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">false_</span><span class="special">></span>
+    <span class="keyword">class</span> <span class="identifier">in_order_iterator</span>
+      <span class="special">:</span> <span class="keyword">public</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">iterator_adaptor</span><span class="special"><</span>
+            <span class="identifier">in_order_iterator</span><span class="special"><</span><span class="identifier">Node</span><span class="special">,</span><span class="identifier">IsReverse</span><span class="special">></span>
+          <span class="special">,</span> <span class="identifier">Node</span><span class="special">*</span>
+          <span class="special">,</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">use_default</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">mpl</span><span class="special">::</span><span class="identifier">if_</span><span class="special"><</span>
+                <span class="identifier">result_of</span><span class="special">::</span><span class="identifier">has_key</span><span class="special"><</span>
+                    <span class="keyword">typename</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">remove_const</span><span class="special"><</span><span class="identifier">Node</span><span class="special">>::</span><span class="identifier">type</span>
+                  <span class="special">,</span> <span class="identifier">count_key</span>
+                <span class="special">></span>
+              <span class="special">,</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">random_access_traversal_tag</span>
+              <span class="special">,</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">bidirectional_traversal_tag</span>
+            <span class="special">>::</span><span class="identifier">type</span>
+        <span class="special">></span>
+    <span class="special">{</span>
+        <span class="keyword">struct</span> <span class="identifier">enabler</span>
+        <span class="special">{</span>
+        <span class="special">};</span>
+
+     <span class="keyword">public</span><span class="special">:</span>
+        <span class="keyword">explicit</span> <span class="identifier">in_order_iterator</span><span class="special">(</span><span class="identifier">Node</span><span class="special">*</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">node_ptr</span> <span class="special">=</span> <span class="keyword">nullptr</span><span class="special">);</span>
+
+        <span class="keyword">explicit</span> <span class="identifier">in_order_iterator</span><span class="special">(</span><span class="identifier">Node</span><span class="special">&</span> <span class="identifier">node</span><span class="special">,</span> <span class="keyword">bool</span> <span class="identifier">is_not_position</span> <span class="special">=</span> <span class="keyword">true</span><span class="special">);</span>
+
+        <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">N</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">I</span><span class="special">></span>
+        <span class="identifier">in_order_iterator</span><span class="special">(</span>
+            <span class="identifier">in_order_iterator</span><span class="special"><</span><span class="identifier">N</span><span class="special">,</span><span class="identifier">I</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="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="keyword">typename</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">if_</span><span class="special"><</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">is_convertible</span><span class="special"><</span><span class="identifier">N</span><span class="special">,</span><span class="identifier">Node</span><span class="special">></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">I</span><span class="special">,</span><span class="identifier">IsReverse</span><span class="special">></span>
+                  <span class="special">,</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">false_</span>
+                <span class="special">>::</span><span class="identifier">type</span>
+              <span class="special">,</span> <span class="identifier">enabler</span>
+            <span class="special">>::</span><span class="identifier">type</span> <span class="special">=</span> <span class="identifier">enabler</span><span class="special">()</span>
+        <span class="special">);</span>
+
+        <span class="keyword">operator</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">tree_node</span><span class="special">::</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>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.in_order_iterator.description"></a><a class="link" href="in_order_iterator.html#tree_node.reference.in_order_iterator.description" title="Description">Description</a>
+</h4></div></div></div>
+<p>
+          This iterator traverses the root node passed to its constructor--and all
+          its descendants--in in-order fashion, e.g. given the following tree representation:
+        </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>
+          The tree nodes will be traversed forward in the following order:
+        </p>
+<pre class="programlisting"><span class="identifier">D</span> <span class="identifier">C</span> <span class="identifier">E</span> <span class="identifier">A</span> <span class="identifier">F</span> <span class="identifier">B</span> <span class="identifier">G</span>
+</pre>
+<p>
+          This iterator can also be used to traverse the tree nodes in reverse:
+        </p>
+<pre class="programlisting"><span class="identifier">G</span> <span class="identifier">B</span> <span class="identifier">F</span> <span class="identifier">A</span> <span class="identifier">E</span> <span class="identifier">C</span> <span class="identifier">D</span>
+</pre>
+<div class="important"><table border="0" summary="Important">
+<tr>
+<td rowspan="2" align="center" valign="top" width="25"><img alt="[Important]" src="http://www.boost.org/doc/libs/release/doc/src/images/important.png"></td>
+<th align="left">Important</th>
+</tr>
+<tr><td align="left" valign="top"><p>
+            This iterator works only on <a class="link" href="../concepts/binary_tree_node.html" title="Binary Tree Node"><span class="bold"><strong>Binary Tree Node</strong></span></a> models.
+          </p></td></tr>
+</table></div>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.in_order_iterator.definition"></a><a class="link" href="in_order_iterator.html#tree_node.reference.in_order_iterator.definition" title="Where defined">Where
+        defined</a>
+</h4></div></div></div>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span>boost/tree_node/iterator/in_order.hpp<span class="special">></span>
+</pre>
+<p>
+          To register under Boost.Typeof:
+        </p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span>boost/typeof/boost/tree_node/iterator/in_order.hpp<span class="special">></span>
+</pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.in_order_iterator.tpl_param"></a><a class="link" href="in_order_iterator.html#tree_node.reference.in_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">Node</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    The type of a tree node.
+                  </p>
+                </td>
+<td>
+                  <p>
+                    It must model the <a class="link" href="../concepts/tree_node.html" title="Tree Node"><span class="bold"><strong>Tree Node</strong></span></a> concept, but it can be
+                    <code class="computeroutput"><span class="keyword">const</span></code>-qualified.
+                  </p>
+                </td>
+<td>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">IsReverse</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Configures the <code class="computeroutput"><span class="identifier">in_order_iterator</span></code>
+                    to traverse tree nodes in reverse in-order fashion if equivalent
+                    to boost::mpl::true_; otherwise, the
+                    nodes will be traversed in in-order fashion.
+                  </p>
+                </td>
+<td>
+                  <p>
+                    It must model the Boolean Integral Constant concept.
+                  </p>
+                </td>
+<td>
+                  <p>
+                    boost::mpl::false_
+                  </p>
+                </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.in_order_iterator.model_of"></a><a class="link" href="in_order_iterator.html#tree_node.reference.in_order_iterator.model_of" title="Model of">Model
+        of</a>
+</h4></div></div></div>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem"><p>
+              <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>
+            </p></li>
+<li class="listitem"><p>
+              <a class="link" href="../concepts/indexable_iterator.html" title="Indexable Iterator"><span class="bold"><strong>Indexable
+              Iterator</strong></span></a> if the value associated with <a class="link" href="count_key.html" title="count_key"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">count_key</span></code></a> exists for <code class="computeroutput"><span class="identifier">Node</span></code>; Bidirectional Iterator otherwise
+            </p></li>
+<li class="listitem"><p>
+              Default Constructible
+            </p></li>
+<li class="listitem"><p>
+              <a href="http://www.boost.org/libs/utility/CopyConstructible.html" target="_top"><span class="bold"><strong>Copy
+              Constructible</strong></span></a>
+            </p></li>
+<li class="listitem"><p>
+              Assignable
+            </p></li>
+</ul></div>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.in_order_iterator.members"></a><a class="link" href="in_order_iterator.html#tree_node.reference.in_order_iterator.members" title="Members">Members</a>
+</h4></div></div></div>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+                  <p>
+                    Name
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Expression
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Description
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Type requirements
+                  </p>
+                </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+                  <p>
+                    Value type
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">typedef</span> <span class="special">...</span> <span class="identifier">value_type</span><span class="special">;</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Defined by the <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> concept.
+                  </p>
+                </td>
+<td>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Reference type
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">typedef</span> <span class="special">...</span> <span class="identifier">reference</span><span class="special">;</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Defined by the Forward Iterator concept.
+                  </p>
+                </td>
+<td>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Pointer type
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">typedef</span> <span class="special">...</span> <span class="identifier">pointer</span><span class="special">;</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Defined by the Forward Iterator concept.
+                  </p>
+                </td>
+<td>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Distance type
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">typedef</span> <span class="special">...</span> <span class="identifier">difference_type</span><span class="special">;</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Defined by the Forward Iterator concept.
+                  </p>
+                </td>
+<td>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Iterator category
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">typedef</span> <span class="special">...</span> <span class="identifier">iterator_category</span><span class="special">;</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Defined by the Forward Iterator concept.
+                  </p>
+                </td>
+<td>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Default constructor
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">in_order_iterator</span><span class="special">();</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Constructs this iterator but does not initialize it. Useful when
+                    delayed initialization is necessary. Required by the Default Constructible concept.
+                  </p>
+                </td>
+<td>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Constructor from node
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">in_order_iterator</span><span class="special">(</span><span class="identifier">Node</span><span class="special">&,</span> <span class="keyword">bool</span> <span class="special">=</span> <span class="keyword">true</span><span class="special">);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    If the flag is set to <code class="computeroutput"><span class="keyword">true</span></code>
+                    (the default), sets this iterator to traverse the specified node
+                    and its descendants, as required by the <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> concept;
+                    otherwise, sets this iterator to point to the specified node
+                    in a traversal through the node's root ancestor and its descendants.
+                  </p>
+                </td>
+<td>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Conversion constructor
+                  </p>
+                </td>
+<td>
+<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">N</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">I</span><span class="special">></span>
+<span class="identifier">in_order_iterator</span><span class="special">(</span><span class="identifier">in_order_iterator</span><span class="special"><</span><span class="identifier">N</span><span class="special">,</span><span class="identifier">I</span><span class="special">></span> <span class="keyword">const</span><span class="special">&);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Constructs this iterator as a copy of the specified one so that
+                    the current node is of type <code class="computeroutput"><span class="identifier">Node</span></code>.
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="literal">std::tr1::is_convertible<N,Node></code>
+                    must evaluate to std::tr1::true_type, and <code class="literal">boost::mpl::equal_to<I,IsReverse></code>
+                    must evaluate to boost::mpl::true_.
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Copy constructor
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">in_order_iterator</span><span class="special">(</span><span class="identifier">in_order_iterator</span> <span class="keyword">const</span><span class="special">&);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Defined by the Copy Constructible concept.
+                  </p>
+                </td>
+<td>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Assignment operator
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">in_order_iterator</span><span class="special">&</span> <span class="keyword">operator</span><span class="special">=(</span><span class="identifier">in_order_iterator</span> <span class="keyword">const</span><span class="special">&);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Defined by the Assignable concept.
+                  </p>
+                </td>
+<td>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Dereference operator
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">reference</span> <span class="keyword">operator</span><span class="special">*()</span> <span class="keyword">const</span><span class="special">;</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Returns the current node. Required by the Forward Iterator concept.
+                  </p>
+                </td>
+<td class="auto-generated"> </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Indirection operator
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">pointer</span> <span class="keyword">operator</span><span class="special">->()</span> <span class="keyword">const</span><span class="special">;</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Returns a pointer to the current node. Required by the Forward Iterator concept.
+                  </p>
+                </td>
+<td>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Pre-increment operator
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">in_order_iterator</span><span class="special">&</span> <span class="keyword">operator</span><span class="special">++();</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    If <code class="computeroutput"><span class="identifier">IsReverse</span></code>
+                    evaluates to boost::mpl::true_, points this
+                    iterator to the next node in the reverse in-order traversal of
+                    the tree whose root node was passed into the constructor; otherwise,
+                    points this iterator to the next node in the in-order traversal
+                    of the tree whose root node was passed into the constructor.
+                    Returns this iterator. Required by the Forward Iterator concept.
+                  </p>
+                </td>
+<td>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Post-increment operator
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">in_order_iterator</span> <span class="keyword">operator</span><span class="special">++(</span><span class="keyword">int</span><span class="special">);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    If <code class="computeroutput"><span class="identifier">IsReverse</span></code>
+                    evaluates to boost::mpl::true_, points this
+                    iterator to the next node in the reverse in-order traversal of
+                    the tree whose root node was passed into the constructor; otherwise,
+                    points this iterator to the next node in the in-order traversal
+                    of the tree whose root node was passed into the constructor.
+                    Returns a new iterator pointing to the (previous) current node.
+                    Required by the Forward Iterator concept.
+                  </p>
+                </td>
+<td>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Pre-decrement operator
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">in_order_iterator</span><span class="special">&</span> <span class="keyword">operator</span><span class="special">--();</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    If <code class="computeroutput"><span class="identifier">IsReverse</span></code>
+                    evaluates to boost::mpl::true_, points this
+                    iterator to the previous node in the reverse in-order traversal
+                    of the tree whose root node was passed into the constructor;
+                    otherwise, points this iterator to the previous node in the in-order
+                    traversal of the tree whose root node was passed into the constructor.
+                    Returns this iterator. Required by the Bidirectional Iterator concept.
+                  </p>
+                </td>
+<td>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Post-decrement operator
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">in_order_iterator</span> <span class="keyword">operator</span><span class="special">--(</span><span class="keyword">int</span><span class="special">);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    If <code class="computeroutput"><span class="identifier">IsReverse</span></code>
+                    evaluates to boost::mpl::true_, points this
+                    iterator to the previous node in the reverse in-order traversal
+                    of the tree whose root node was passed into the constructor;
+                    otherwise, points this iterator to the previous node in the in-order
+                    traversal of the tree whose root node was passed into the constructor.
+                    Returns a new iterator pointing to the (next) current node. Required
+                    by the Bidirectional Iterator concept.
+                  </p>
+                </td>
+<td>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Addition assignment operator
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">in_order_iterator</span><span class="special">&</span> <span class="keyword">operator</span><span class="special">+=(</span><span class="identifier">difference_type</span> <span class="identifier">n</span><span class="special">);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Defined by the <a class="link" href="../concepts/indexable_iterator.html" title="Indexable Iterator"><span class="bold"><strong>Indexable Iterator</strong></span></a> concept.
+                  </p>
+                </td>
+<td>
+                  <p>
+                    The value associated with <a class="link" href="count_key.html" title="count_key"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">count_key</span></code></a> must exist
+                    for <code class="computeroutput"><span class="identifier">Node</span></code>.
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Subtraction assignment operator
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">in_order_iterator</span><span class="special">&</span> <span class="keyword">operator</span><span class="special">-=(</span><span class="identifier">difference_type</span> <span class="identifier">n</span><span class="special">);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Defined by the <a class="link" href="../concepts/indexable_iterator.html" title="Indexable Iterator"><span class="bold"><strong>Indexable Iterator</strong></span></a> concept.
+                  </p>
+                </td>
+<td>
+                  <p>
+                    The value associated with <a class="link" href="count_key.html" title="count_key"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">count_key</span></code></a> must exist
+                    for <code class="computeroutput"><span class="identifier">Node</span></code>.
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Traversal state conversion operator
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">operator</span> <a class="link" href="traversal_state.html" title="traversal_state">tree_node::traversal_state</a><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Defined by 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>
+<td>
+                </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.in_order_iterator.non_members"></a><a class="link" href="in_order_iterator.html#tree_node.reference.in_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>
+                    Forward iterator creation
+                  </p>
+                </td>
+<td>
+<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">Node</span><span class="special">></span>
+    <span class="identifier">in_order_iterator</span><span class="special"><</span><span class="identifier">Node</span><span class="special">></span> <span class="identifier">make_in_order_iterator</span><span class="special">(</span><span class="identifier">Node</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>
+                </td>
+<td>
+                  <p>
+                    Constructs and returns an <code class="computeroutput"><span class="identifier">in_order_iterator</span></code>
+                    that will iterate forward through the specified node and its
+                    descendants.
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Forward iterator end creation
+                  </p>
+                </td>
+<td>
+<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">Node</span><span class="special">></span>
+    <span class="identifier">in_order_iterator</span><span class="special"><</span><span class="identifier">Node</span><span class="special">></span> <span class="identifier">make_in_order_iterator_end</span><span class="special">(</span><span class="identifier">Node</span><span class="special">*</span> <span class="identifier">node_ptr</span><span class="special">);</span>
+<span class="special">}}</span>  <span class="comment">// namespace boost::tree_node</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Constructs and returns an <code class="computeroutput"><span class="identifier">in_order_iterator</span></code>
+                    that points past-the-end of a forward iteration through the specified
+                    node and its descendants.
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Reverse iterator creation
+                  </p>
+                </td>
+<td>
+<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">Node</span><span class="special">></span>
+    <span class="identifier">in_order_iterator</span><span class="special"><</span><span class="identifier">Node</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_in_order_reverse_iterator</span><span class="special">(</span><span class="identifier">Node</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>
+                </td>
+<td>
+                  <p>
+                    Constructs and returns an <code class="computeroutput"><span class="identifier">in_order_iterator</span></code>
+                    that will iterate in reverse through the specified node and its
+                    descendants.
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Reverse iterator end creation
+                  </p>
+                </td>
+<td>
+<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">Node</span><span class="special">></span>
+    <span class="identifier">in_order_iterator</span><span class="special"><</span><span class="identifier">Node</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_in_order_reverse_iterator_end</span><span class="special">(</span><span class="identifier">Node</span><span class="special">*</span> <span class="identifier">node_ptr</span><span class="special">);</span>
+<span class="special">}}</span>  <span class="comment">// namespace boost::tree_node</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Constructs and returns an <code class="computeroutput"><span class="identifier">in_order_iterator</span></code>
+                    that points past-the-end of a reverse iteration through the specified
+                    node and its descendants.
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Position iterator creation
+                  </p>
+                </td>
+<td>
+<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">Node</span><span class="special">></span>
+    <span class="identifier">in_order_iterator</span><span class="special"><</span><span class="identifier">Node</span><span class="special">></span> <span class="identifier">make_in_order_iterator_position</span><span class="special">(</span><span class="identifier">Node</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>
+                </td>
+<td>
+                  <p>
+                    Constructs and returns an <code class="computeroutput"><span class="identifier">in_order_iterator</span></code>
+                    that points to the specified node in a forward traversal through
+                    the node's root ancestor and its descendants.
+                  </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-2013 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_desc_iter.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="depth_first_iterator.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/nary_node.html
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/nary_node.html	2013-07-07 14:52:52 EDT (Sun, 07 Jul 2013)	(r84977)
@@ -0,0 +1,864 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>nary_node<T,Selector></title>
+<link rel="stylesheet" href="http://www.boost.org/doc/libs/release/doc/src/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.77.1">
+<link rel="home" href="../../index.html" title="Chapter 1. tree_node 0.5">
+<link rel="up" href="../reference.html" title="Reference">
+<link rel="prev" href="binary_node_base_gen.html" title="binary_node_base_gen<Size,AllocatorSelector>">
+<link rel="next" href="nary_node_gen.html" title="nary_node_gen<Selector>">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr><td valign="top"><img alt="C++ Boost" width="277" height="86" src="../../../../../../boost.png"></td></tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="binary_node_base_gen.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="nary_node_gen.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="tree_node.reference.nary_node"></a><a class="link" href="nary_node.html" title="nary_node<T,Selector>"><code class="computeroutput"><span class="identifier">nary_node</span><span class="special"><</span><span class="identifier">T</span><span class="special">,</span><span class="identifier">Selector</span><span class="special">></span></code></a>
+</h3></div></div></div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.nary_node.description"></a><a class="link" href="nary_node.html#tree_node.reference.nary_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 can handle an arbitrary number of children.
+          Objects of this type can be stored by value.
+        </p>
+<p>
+          If the user data type models the Fusion Associative Sequence concept, then
+          each of the elements within can be also be obtained through key-value access
+          and set through key-value modification as defined by the <a class="link" href="../concepts/tree_node.html" title="Tree Node"><span class="bold"><strong>Tree Node</strong></span></a> concept; more specifically, for
+          some object <code class="computeroutput"><span class="identifier">node</span></code> of type
+          <code class="computeroutput"><span class="identifier">Node</span></code> such that <code class="computeroutput"><span class="identifier">Node</span></code> is a template instantiation of
+          <code class="computeroutput"><span class="identifier">nary_node</span></code>, then for any
+          type <code class="computeroutput"><span class="identifier">Key</span></code> such that <code class="literal">boost::fusion::has_key<Key>(get<<a class="link" href="data_key.html" title="data_key">tree_node::data_key</a>>(node))</code>
+          returns <code class="computeroutput"><span class="keyword">true</span></code>, so does <code class="literal"><a class="link" href="has_key.html" title="has_key()">tree_node::has_key</a><Key>(node)</code>.
+        </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.nary_node.definition"></a><a class="link" href="nary_node.html#tree_node.reference.nary_node.definition" title="Where defined">Where defined</a>
+</h4></div></div></div>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span>boost/tree_node/nary_node.hpp<span class="special">></span>
+</pre>
+<p>
+          Forward-declared:
+        </p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span>boost/tree_node/nary_node_fwd.hpp<span class="special">></span>
+</pre>
+<p>
+          To register under Boost.Typeof:
+        </p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span>boost/typeof/boost/tree_node/nary_node.hpp<span class="special">></span>
+</pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.nary_node.tpl_param"></a><a class="link" href="nary_node.html#tree_node.reference.nary_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 user data to be stored in an <code class="computeroutput"><span class="identifier">nary_node</span></code>.
+                  </p>
+                </td>
+<td>
+                </td>
+<td>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">Selector</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    The type that determines the child container type.
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="literal">boost::is_recursive_selector<Selector></code>
+                    must return boost::mpl::true_.
+                  </p>
+                </td>
+<td>
+                  <p>
+                    boost::ptr_dequeS
+                  </p>
+                </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.nary_node.model_of"></a><a class="link" href="nary_node.html#tree_node.reference.nary_node.model_of" title="Model of">Model of</a>
+</h4></div></div></div>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem"><p>
+              <a class="link" href="../concepts/nary_tree_node.html" title="N-ary Tree Node"><span class="bold"><strong>N-ary
+              Tree Node</strong></span></a>
+            </p></li>
+<li class="listitem"><p>
+              <a class="link" href="../concepts/reversible_tree_node.html" title="Reversible Tree Node"><span class="bold"><strong>Reversible
+              Tree Node</strong></span></a> if <code class="literal">boost::container_gen<Selector,nary_node>::type</code>
+              returns a Reversible Container model
+            </p></li>
+<li class="listitem"><p>
+              Default Constructible if <code class="computeroutput"><span class="identifier">T</span></code> is Default Constructible
+            </p></li>
+<li class="listitem"><p>
+              <a class="link" href="../concepts/copyable_tree_node.html" title="Copyable Tree Node"><span class="bold"><strong>Copyable
+              Tree Node</strong></span></a> if <code class="computeroutput"><span class="identifier">T</span></code>
+              is Copy Constructible
+            </p></li>
+<li class="listitem"><p>
+              Assignable
+              if <code class="computeroutput"><span class="identifier">T</span></code> is Copy Constructible and Movable
+            </p></li>
+<li class="listitem"><p>
+              <a class="link" href="../concepts/movable_tree_node.html" title="Movable Tree Node"><span class="bold"><strong>Movable
+              Tree Node</strong></span></a> if <code class="computeroutput"><span class="identifier">T</span></code>
+              is Movable
+            </p></li>
+</ul></div>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.nary_node.public_bases"></a><a class="link" href="nary_node.html#tree_node.reference.nary_node.public_bases" title="Public Base Classes">Public
+        Base Classes</a>
+</h4></div></div></div>
+<pre class="programlisting"><span class="identifier">nary_node_base</span><span class="special"><</span><span class="identifier">nary_node</span><span class="special"><</span><span class="identifier">T</span><span class="special">,</span><span class="identifier">Selector</span><span class="special">>,</span><span class="identifier">T</span><span class="special">,</span><span class="identifier">Selector</span><span class="special">></span>
+</pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.nary_node.members"></a><a class="link" href="nary_node.html#tree_node.reference.nary_node.members" title="Public Members">Public Members</a>
+</h4></div></div></div>
+<p>
+          Given:
+        </p>
+<pre class="programlisting"><span class="keyword">typedef</span> <span class="keyword">typename</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">container_gen</span><span class="special"><</span><span class="identifier">Selector</span><span class="special">,</span><span class="identifier">Derived</span><span class="special">>::</span><span class="identifier">type</span>
+        <span class="identifier">children</span><span class="special">;</span>
+</pre>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+                  <p>
+                    Name
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Definition
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Where defined
+                  </p>
+                </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+                  <p>
+                    Super type
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">typedef</span> <span class="identifier">nary_node_base</span><span class="special"><</span><span class="identifier">nary_node</span><span class="special">,</span><span class="identifier">T</span><span class="special">,</span><span class="identifier">Selector</span><span class="special">></span>
+        <span class="identifier">super_t</span><span class="special">;</span>
+</pre>
+                </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, allocator type, allocator reference type
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">typedef</span> <span class="keyword">typename</span> <span class="identifier">super_t</span><span class="special">::</span><span class="identifier">traits</span>
+        <span class="identifier">traits</span><span class="special">;</span>
+</pre>
+                </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>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">typedef</span> <span class="keyword">typename</span> <span class="identifier">super_t</span><span class="special">::</span><span class="identifier">pointer</span>
+        <span class="identifier">pointer</span><span class="special">;</span>
+</pre>
+                </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>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">typedef</span> <span class="keyword">typename</span> <span class="identifier">super_t</span><span class="special">::</span><span class="identifier">const_pointer</span>
+        <span class="identifier">const_pointer</span><span class="special">;</span>
+</pre>
+                </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>
+                    Iterator type
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">typedef</span> <span class="keyword">typename</span> <span class="identifier">super_t</span><span class="special">::</span><span class="identifier">iterator</span>
+        <span class="identifier">iterator</span><span class="special">;</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <a class="link" href="../concepts/non_assoc_tree_node.html" title="Non-Associative Tree Node"><span class="bold"><strong>Non-Associative Tree Node</strong></span></a>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Immutable iterator type
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">typedef</span> <span class="keyword">typename</span> <span class="identifier">super_t</span><span class="special">::</span><span class="identifier">const_iterator</span>
+        <span class="identifier">const_iterator</span><span class="special">;</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <a class="link" href="../concepts/non_assoc_tree_node.html" title="Non-Associative Tree Node"><span class="bold"><strong>Non-Associative Tree Node</strong></span></a>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Reverse iterator type
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">typedef</span> <span class="keyword">typename</span> <span class="identifier">children</span><span class="special">::</span><span class="identifier">reverse_iterator</span> <span class="identifier">reverse_iterator</span><span class="special">;</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <a class="link" href="../concepts/reversible_tree_node.html" title="Reversible Tree Node"><span class="bold"><strong>Reversible Tree Node</strong></span></a>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Immutable reverse iterator type
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">typedef</span> <span class="keyword">typename</span> <span class="identifier">children</span><span class="special">::</span><span class="identifier">const_reverse_iterator</span>
+        <span class="identifier">const_reverse_iterator</span><span class="special">;</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <a class="link" href="../concepts/reversible_tree_node.html" title="Reversible Tree Node"><span class="bold"><strong>Reversible Tree Node</strong></span></a>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Emplacement constructor
+                  </p>
+                </td>
+<td>
+<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="special">...</span><span class="identifier">Args</span><span class="special">></span>
+<span class="keyword">explicit</span> <span class="identifier">nary_node</span><span class="special">(</span><span class="identifier">Args</span><span class="special">&&</span> <span class="special">...</span><span class="identifier">args</span><span class="special">);</span>
+</pre>
+                </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>
+                    Emplacement constructor with allocator
+                  </p>
+                </td>
+<td>
+<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="special">...</span><span class="identifier">Args</span><span class="special">></span>
+<span class="keyword">explicit</span> <span class="identifier">nary_node</span><span class="special">(</span>
+    <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">container</span><span class="special">::</span><span class="identifier">allocator_arg_t</span>
+  <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">traits</span><span class="special">::</span><span class="identifier">allocator_reference</span> <span class="identifier">allocator</span>
+  <span class="special">,</span> <span class="identifier">Args</span><span class="special">&&</span> <span class="special">...</span><span class="identifier">args</span>
+<span class="special">);</span>
+</pre>
+                </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>
+                    Copy constructor
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">nary_node</span><span class="special">(</span><span class="identifier">nary_node</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">copy</span><span class="special">);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <a class="link" href="../concepts/copyable_tree_node.html" title="Copyable Tree Node"><span class="bold"><strong>Copyable Tree Node</strong></span></a>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Copy constructor with allocator
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">nary_node</span><span class="special">(</span>
+    <span class="identifier">nary_node</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">copy</span>
+  <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">traits</span><span class="special">::</span><span class="identifier">allocator_reference</span> <span class="identifier">allocator</span>
+<span class="special">);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <a class="link" href="../concepts/copyable_tree_node.html" title="Copyable Tree Node"><span class="bold"><strong>Copyable Tree Node</strong></span></a>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Move constructor
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">nary_node</span><span class="special">(</span><span class="identifier">nary_node</span><span class="special">&&</span> <span class="identifier">source</span><span class="special">);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <a class="link" href="../concepts/movable_tree_node.html" title="Movable Tree Node"><span class="bold"><strong>Movable Tree Node</strong></span></a>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Move constructor with allocator
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">nary_node</span><span class="special">(</span>
+    <span class="identifier">nary_node</span><span class="special">&&</span> <span class="identifier">source</span>
+  <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">traits</span><span class="special">::</span><span class="identifier">allocator_reference</span> <span class="identifier">allocator</span>
+<span class="special">);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <a class="link" href="../concepts/movable_tree_node.html" title="Movable Tree Node"><span class="bold"><strong>Movable Tree Node</strong></span></a>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Copy assignment operator
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">nary_node</span><span class="special">&</span> <span class="keyword">operator</span><span class="special">=(</span><span class="identifier">nary_node</span> <span class="keyword">const</span><span class="special">&);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Assignable
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Move assignment operator
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">nary_node</span><span class="special">&</span> <span class="keyword">operator</span><span class="special">=(</span><span class="identifier">nary_node</span><span class="special">&&);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Movable
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Parent read-only access
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">const_pointer</span> <span class="identifier">get_parent_ptr</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+</pre>
+                </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>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">pointer</span> <span class="identifier">get_parent_ptr</span><span class="special">();</span>
+</pre>
+                </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
+                  </p>
+                </td>
+<td>
+<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="special">...</span><span class="identifier">Args</span><span class="special">></span>
+<span class="identifier">iterator</span> <span class="identifier">emplace</span><span class="special">(</span><span class="identifier">Args</span><span class="special">&&</span> <span class="special">...</span><span class="identifier">args</span><span class="special">);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <a class="link" href="../concepts/nary_tree_node.html" title="N-ary Tree Node"><span class="bold"><strong>N-ary
+                    Tree Node</strong></span></a>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Child copy creation
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">iterator</span> <span class="identifier">insert</span><span class="special">(</span><span class="identifier">nary_node</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">child</span><span class="special">);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <a class="link" href="../concepts/nary_tree_node.html" title="N-ary Tree Node"><span class="bold"><strong>N-ary
+                    Tree Node</strong></span></a>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Child move insertion
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">iterator</span> <span class="identifier">insert</span><span class="special">(</span><span class="identifier">nary_node</span><span class="special">&&</span> <span class="identifier">child</span><span class="special">);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <a class="link" href="../concepts/nary_tree_node.html" title="N-ary Tree Node"><span class="bold"><strong>N-ary
+                    Tree Node</strong></span></a>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Children range begin read-only access
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">const_iterator</span> <span class="identifier">cbegin</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+<span class="identifier">const_iterator</span> <span class="identifier">begin</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+</pre>
+                </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>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">iterator</span> <span class="identifier">begin</span><span class="special">();</span>
+</pre>
+                </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 read-only access
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">const_iterator</span> <span class="identifier">cend</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+<span class="identifier">const_iterator</span> <span class="identifier">end</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+</pre>
+                </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>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">iterator</span> <span class="identifier">end</span><span class="special">();</span>
+</pre>
+                </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 reverse range begin read-only access
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">const_reverse_iterator</span> <span class="identifier">crbegin</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+<span class="identifier">const_reverse_iterator</span> <span class="identifier">rbegin</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <a class="link" href="../concepts/reversible_tree_node.html" title="Reversible Tree Node"><span class="bold"><strong>Reversible Tree Node</strong></span></a>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Children reverse range begin access
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">reverse_iterator</span> <span class="identifier">rbegin</span><span class="special">();</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <a class="link" href="../concepts/reversible_tree_node.html" title="Reversible Tree Node"><span class="bold"><strong>Reversible Tree Node</strong></span></a>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Children reverse range past-the-end read-only access
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">const_reverse_iterator</span> <span class="identifier">crend</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+<span class="identifier">const_reverse_iterator</span> <span class="identifier">rend</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <a class="link" href="../concepts/reversible_tree_node.html" title="Reversible Tree Node"><span class="bold"><strong>Reversible Tree Node</strong></span></a>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Children reverse range past-the-end access
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">reverse_iterator</span> <span class="identifier">rend</span><span class="special">();</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <a class="link" href="../concepts/reversible_tree_node.html" title="Reversible Tree Node"><span class="bold"><strong>Reversible Tree Node</strong></span></a>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Children range size query
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">size_type</span> <span class="identifier">size</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+</pre>
+                </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>
+                    Leaf node query
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">bool</span> <span class="identifier">empty</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+</pre>
+                </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>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">void</span> <span class="identifier">clear</span><span class="special">();</span>
+</pre>
+                </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>
+                    Splice node
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">typename</span> boost::insert_range_result_gen<span class="special"><</span><span class="identifier">Selector</span><span class="special">,</span><span class="identifier">nary_node</span><span class="special">>::</span><span class="identifier">type</span>
+    <span class="identifier">splice</span><span class="special">(</span><span class="identifier">iterator</span> <span class="identifier">pos</span><span class="special">,</span> <span class="identifier">nary_node</span><span class="special">&</span> <span class="identifier">node</span><span class="special">);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <a class="link" href="../concepts/nary_tree_node.html" title="N-ary Tree Node"><span class="bold"><strong>N-ary
+                    Tree Node</strong></span></a>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Splice single child
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">typename</span> boost::insert_range_result_gen<span class="special"><</span><span class="identifier">Selector</span><span class="special">,</span><span class="identifier">nary_node</span><span class="special">>::</span><span class="identifier">type</span>
+    <span class="identifier">splice</span><span class="special">(</span><span class="identifier">iterator</span> <span class="identifier">pos</span><span class="special">,</span> <span class="identifier">nary_node</span><span class="special">&</span> <span class="identifier">node</span><span class="special">,</span> <span class="identifier">iterator</span> <span class="identifier">itr</span><span class="special">);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <a class="link" href="../concepts/nary_tree_node.html" title="N-ary Tree Node"><span class="bold"><strong>N-ary
+                    Tree Node</strong></span></a>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Splice range
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">typename</span> boost::insert_range_result_gen<span class="special"><</span><span class="identifier">Selector</span><span class="special">,</span><span class="identifier">nary_node</span><span class="special">>::</span><span class="identifier">type</span>
+    <span class="identifier">splice</span><span class="special">(</span>
+        <span class="identifier">iterator</span> <span class="identifier">pos</span>
+      <span class="special">,</span> <span class="identifier">nary_node</span><span class="special">&</span> <span class="identifier">node</span>
+      <span class="special">,</span> <span class="identifier">iterator</span> <span class="identifier">itr</span>
+      <span class="special">,</span> <span class="identifier">iterator</span> <span class="identifier">itr_end</span>
+    <span class="special">);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <a class="link" href="../concepts/nary_tree_node.html" title="N-ary Tree Node"><span class="bold"><strong>N-ary
+                    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.nary_node.non_members"></a><a class="link" href="nary_node.html#tree_node.reference.nary_node.non_members" title="Non-Members">Non-Members</a>
+</h4></div></div></div>
+<p>
+          Same as those defined in <a class="link" href="nary_node_base.html" title="nary_node_base<Derived,T,Selector>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">nary_node_base</span></code></a>.
+        </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.nary_node.example"></a><a class="link" href="nary_node.html#tree_node.reference.nary_node.example" title="Example">Example</a>
+</h4></div></div></div>
+<p>
+          <example/nary_node.cpp>
+        </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.nary_node.test"></a><a class="link" href="nary_node.html#tree_node.reference.nary_node.test" title="Test">Test</a>
+</h4></div></div></div>
+<p>
+          <test/nary_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-2013 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="binary_node_base_gen.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="nary_node_gen.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/nary_node_base.html
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/nary_node_base.html	2013-07-07 14:52:52 EDT (Sun, 07 Jul 2013)	(r84977)
@@ -0,0 +1,1493 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>nary_node_base<Derived,T,Selector></title>
+<link rel="stylesheet" href="http://www.boost.org/doc/libs/release/doc/src/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.77.1">
+<link rel="home" href="../../index.html" title="Chapter 1. tree_node 0.5">
+<link rel="up" href="../reference.html" title="Reference">
+<link rel="prev" href="nary_node_gen.html" title="nary_node_gen<Selector>">
+<link rel="next" href="nary_node_base_gen.html" title="nary_node_base_gen<Selector>">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr><td valign="top"><img alt="C++ Boost" width="277" height="86" src="../../../../../../boost.png"></td></tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="nary_node_gen.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="nary_node_base_gen.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="tree_node.reference.nary_node_base"></a><a class="link" href="nary_node_base.html" title="nary_node_base<Derived,T,Selector>"><code class="computeroutput"><span class="identifier">nary_node_base</span><span class="special"><</span><span class="identifier">Derived</span><span class="special">,</span><span class="identifier">T</span><span class="special">,</span><span class="identifier">Selector</span><span class="special">></span></code></a>
+</h3></div></div></div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.nary_node_base.description"></a><a class="link" href="nary_node_base.html#tree_node.reference.nary_node_base.description" title="Description">Description</a>
+</h4></div></div></div>
+<p>
+          The <a class="link" href="nary_node.html" title="nary_node<T,Selector>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">nary_node</span></code></a>
+          class template inherits its functionality from this class template. They
+          differ only with regard to template parameters: the <a class="link" href="nary_node.html" title="nary_node<T,Selector>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">nary_node</span></code></a> class template is meant
+          to be used directly as a data structure, while <code class="computeroutput"><span class="identifier">nary_node_base</span></code>
+          is more suitable as a base class template from which <a class="link" href="../concepts/tree_node.html" title="Tree Node"><span class="bold"><strong>Tree Node</strong></span></a> adaptor class templates can derive
+          via the <a class="link" href="nary_node_base_gen.html" title="nary_node_base_gen<Selector>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">nary_node_base_gen</span></code></a> <a class="link" href="../concepts/base_type_generator.html" title="Base Type Generator"><span class="bold"><strong>Base Type Generator</strong></span></a>.
+        </p>
+<p>
+          If the user data type models the Fusion Associative Sequence concept, then
+          each of the elements within can be also be obtained through key-value access
+          and set through key-value modification as defined by the <a class="link" href="../concepts/tree_node.html" title="Tree Node"><span class="bold"><strong>Tree Node</strong></span></a> concept; more specifically, for
+          some object <code class="computeroutput"><span class="identifier">node</span></code> of type
+          <code class="computeroutput"><span class="identifier">Node</span></code> such that <code class="computeroutput"><span class="identifier">Node</span></code> inherits from <code class="computeroutput"><span class="identifier">nary_node_base</span></code>,
+          then for any type <code class="computeroutput"><span class="identifier">Key</span></code> such
+          that <code class="literal">boost::fusion::has_key<Key>(get<<a class="link" href="data_key.html" title="data_key">tree_node::data_key</a>>(node))</code>
+          returns <code class="computeroutput"><span class="keyword">true</span></code>, so does <code class="literal"><a class="link" href="has_key.html" title="has_key()">tree_node::has_key</a><Key>(node)</code>.
+        </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.nary_node_base.definition"></a><a class="link" href="nary_node_base.html#tree_node.reference.nary_node_base.definition" title="Where defined">Where
+        defined</a>
+</h4></div></div></div>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span>boost/tree_node/nary_node.hpp<span class="special">></span>
+</pre>
+<p>
+          Forward-declared:
+        </p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span>boost/tree_node/nary_node_fwd.hpp<span class="special">></span>
+</pre>
+<p>
+          To register under Boost.Typeof:
+        </p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span>boost/typeof/boost/tree_node/nary_node.hpp<span class="special">></span>
+</pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.nary_node_base.tpl_param"></a><a class="link" href="nary_node_base.html#tree_node.reference.nary_node_base.tpl_param" title="Template Parameters">Template
+        Parameters</a>
+</h4></div></div></div>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+                  <p>
+                    Parameter
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Description
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Requirements
+                  </p>
+                </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">Derived</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    The most descendant type that will inherit from this one.
+                  </p>
+                </td>
+<td>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">T</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    The user data type.
+                  </p>
+                </td>
+<td>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">Selector</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    The type that determines the child container type.
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="literal">boost::is_recursive_selector<Selector></code>
+                    must return boost::mpl::true_.
+                  </p>
+                </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.nary_node_base.model_of"></a><a class="link" href="nary_node_base.html#tree_node.reference.nary_node_base.model_of" title="Model of">Model
+        of</a>
+</h4></div></div></div>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem"><p>
+              <a class="link" href="../concepts/nary_tree_node.html" title="N-ary Tree Node"><span class="bold"><strong>N-ary
+              Tree Node</strong></span></a>
+            </p></li>
+<li class="listitem"><p>
+              <a class="link" href="../concepts/reversible_tree_node.html" title="Reversible Tree Node"><span class="bold"><strong>Reversible
+              Tree Node</strong></span></a> if <code class="literal">boost::container_gen<Selector,Derived>::type</code>
+              returns a Reversible Container model
+            </p></li>
+<li class="listitem"><p>
+              <a class="link" href="../concepts/base_tree_node.html" title="Base Tree Node"><span class="bold"><strong>Base
+              Tree Node</strong></span></a>
+            </p></li>
+<li class="listitem"><p>
+              Default Constructible if <code class="computeroutput"><span class="identifier">T</span></code> is Default Constructible
+            </p></li>
+</ul></div>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.nary_node_base.public_bases"></a><a class="link" href="nary_node_base.html#tree_node.reference.nary_node_base.public_bases" title="Public Base Classes">Public
+        Base Classes</a>
+</h4></div></div></div>
+<pre class="programlisting"><span class="identifier">tree_node_base</span><span class="special"><</span><span class="identifier">Derived</span><span class="special">></span>
+</pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.nary_node_base.members"></a><a class="link" href="nary_node_base.html#tree_node.reference.nary_node_base.members" title="Members">Members</a>
+</h4></div></div></div>
+<p>
+          Given:
+        </p>
+<pre class="programlisting"><span class="keyword">typedef</span> <span class="keyword">typename</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">container_gen</span><span class="special"><</span><span class="identifier">Selector</span><span class="special">,</span><span class="identifier">Derived</span><span class="special">>::</span><span class="identifier">type</span>
+        <span class="identifier">children</span><span class="special">;</span>
+</pre>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+                  <p>
+                    Name
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Definition
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Scope
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Where defined
+                  </p>
+                </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+                  <p>
+                    Super type
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">typedef</span> <span class="identifier">tree_node_base</span><span class="special"><</span><span class="identifier">Derived</span><span class="special">></span> <span class="identifier">super_t</span><span class="special">;</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">public</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, allocator type, allocator reference type
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">struct</span> <span class="identifier">traits</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="keyword">typename</span> <span class="identifier">children</span><span class="special">::</span><span class="identifier">allocator_type</span> <span class="identifier">allocator</span><span class="special">;</span>
+    <span class="keyword">typedef</span> <span class="identifier">allocator</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">allocator_reference</span><span class="special">;</span>
+<span class="special">};</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">public</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>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">typedef</span> <span class="keyword">typename</span> <span class="identifier">super_t</span><span class="special">::</span><span class="identifier">pointer</span> <span class="identifier">pointer</span><span class="special">;</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">public</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>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">typedef</span> <span class="keyword">typename</span> <span class="identifier">super_t</span><span class="special">::</span><span class="identifier">const_pointer</span> <span class="identifier">const_pointer</span><span class="special">;</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">public</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>
+                    Iterator type
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">typedef</span> <span class="keyword">typename</span> <span class="identifier">children</span><span class="special">::</span><span class="identifier">iterator</span> <span class="identifier">iterator</span><span class="special">;</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">public</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <a class="link" href="../concepts/non_assoc_tree_node.html" title="Non-Associative Tree Node"><span class="bold"><strong>Non-Associative Tree Node</strong></span></a>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Immutable iterator type
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">typedef</span> <span class="keyword">typename</span> <span class="identifier">children</span><span class="special">::</span><span class="identifier">const_iterator</span> <span class="identifier">const_iterator</span><span class="special">;</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">public</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <a class="link" href="../concepts/non_assoc_tree_node.html" title="Non-Associative Tree Node"><span class="bold"><strong>Non-Associative Tree Node</strong></span></a>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Reverse iterator type
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">typedef</span> <span class="keyword">typename</span> <span class="identifier">children</span><span class="special">::</span><span class="identifier">reverse_iterator</span> <span class="identifier">reverse_iterator</span><span class="special">;</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">public</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <a class="link" href="../concepts/reversible_tree_node.html" title="Reversible Tree Node"><span class="bold"><strong>Reversible Tree Node</strong></span></a>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Immutable reverse iterator type
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">typedef</span> <span class="keyword">typename</span> <span class="identifier">children</span><span class="special">::</span><span class="identifier">const_reverse_iterator</span>
+        <span class="identifier">const_reverse_iterator</span><span class="special">;</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">public</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <a class="link" href="../concepts/reversible_tree_node.html" title="Reversible Tree Node"><span class="bold"><strong>Reversible Tree Node</strong></span></a>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Emplacement constructor
+                  </p>
+                </td>
+<td>
+<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="special">...</span><span class="identifier">Args</span><span class="special">></span>
+<span class="keyword">explicit</span> <span class="identifier">nary_node_base</span><span class="special">(</span><span class="identifier">Args</span><span class="special">&&</span> <span class="special">...</span><span class="identifier">args</span><span class="special">);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">protected</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>
+                    Emplacement constructor with allocator
+                  </p>
+                </td>
+<td>
+<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="special">...</span><span class="identifier">Args</span><span class="special">></span>
+<span class="keyword">explicit</span> <span class="identifier">nary_node_base</span><span class="special">(</span>
+    <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">container</span><span class="special">::</span><span class="identifier">allocator_arg_t</span>
+  <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">traits</span><span class="special">::</span><span class="identifier">allocator_reference</span> <span class="identifier">allocator</span>
+  <span class="special">,</span> <span class="identifier">Args</span><span class="special">&&</span> <span class="special">...</span><span class="identifier">args</span>
+<span class="special">);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">protected</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>
+                    Derived copy constructor
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">nary_node_base</span><span class="special">(</span><span class="identifier">Derived</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">copy</span><span class="special">);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">protected</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <a class="link" href="../concepts/base_tree_node.html" title="Base Tree Node"><span class="bold"><strong>Base
+                    Tree Node</strong></span></a>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Derived copy constructor with allocator
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">nary_node_base</span><span class="special">(</span>
+    <span class="identifier">Derived</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">copy</span>
+  <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">traits</span><span class="special">::</span><span class="identifier">allocator_reference</span> <span class="identifier">allocator</span>
+<span class="special">);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">protected</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <a class="link" href="../concepts/base_tree_node.html" title="Base Tree Node"><span class="bold"><strong>Base
+                    Tree Node</strong></span></a>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Derived move constructor
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">nary_node_base</span><span class="special">(</span><span class="identifier">Derived</span><span class="special">&&</span> <span class="identifier">source</span><span class="special">);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">protected</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <a class="link" href="../concepts/base_tree_node.html" title="Base Tree Node"><span class="bold"><strong>Base
+                    Tree Node</strong></span></a>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Derived move constructor with allocator
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">nary_node_base</span><span class="special">(</span>
+    <span class="identifier">Derived</span><span class="special">&&</span> <span class="identifier">source</span>
+  <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">traits</span><span class="special">::</span><span class="identifier">allocator_reference</span> <span class="identifier">allocator</span>
+<span class="special">);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">protected</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <a class="link" href="../concepts/base_tree_node.html" title="Base Tree Node"><span class="bold"><strong>Base
+                    Tree Node</strong></span></a>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Base descendant cloning
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">void</span> <span class="identifier">clone_descendants</span><span class="special">(</span><span class="identifier">Derived</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">copy</span><span class="special">);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">protected</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <a class="link" href="../concepts/base_tree_node.html" title="Base Tree Node"><span class="bold"><strong>Base
+                    Tree Node</strong></span></a>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Base descendant movement
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">void</span> <span class="identifier">move_descendants</span><span class="special">(</span><span class="identifier">Derived</span><span class="special">&&</span> <span class="identifier">source</span><span class="special">);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">protected</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <a class="link" href="../concepts/base_tree_node.html" title="Base Tree Node"><span class="bold"><strong>Base
+                    Tree Node</strong></span></a>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Derived copy assignment
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">void</span> <span class="identifier">copy_assign</span><span class="special">(</span><span class="identifier">Derived</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">copy</span><span class="special">);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">protected</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <a class="link" href="../concepts/base_tree_node.html" title="Base Tree Node"><span class="bold"><strong>Base
+                    Tree Node</strong></span></a>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Derived move assignment
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">Derived</span><span class="special">&</span> <span class="keyword">operator</span><span class="special">=(</span><span class="identifier">Derived</span><span class="special">&&);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">protected</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <a class="link" href="../concepts/base_tree_node.html" title="Base Tree Node"><span class="bold"><strong>Base
+                    Tree Node</strong></span></a>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    User data member read-only access
+                  </p>
+                </td>
+<td>
+<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">FusionKey</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">lazy_enable_if</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">mpl</span><span class="special">::</span><span class="identifier">if_</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">mpl</span><span class="special">::</span><span class="identifier">eval_if</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">fusion</span><span class="special">::</span><span class="identifier">traits</span><span class="special">::</span><span class="identifier">is_sequence</span><span class="special"><</span><span class="identifier">T</span><span class="special">>::</span><span class="identifier">type</span>
+          <span class="special">,</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">fusion</span><span class="special">::</span><span class="identifier">traits</span><span class="special">::</span><span class="identifier">is_associative</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span>
+          <span class="special">,</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">false_</span>
+        <span class="special">>::</span><span class="identifier">type</span>
+      <span class="special">,</span> <span class="identifier">result_of</span><span class="special">::</span><span class="identifier">has_key</span><span class="special"><</span>
+            <span class="identifier">nary_node_base</span><span class="special"><</span><span class="identifier">Derived</span><span class="special">,</span><span class="identifier">T</span><span class="special">,</span><span class="identifier">Selector</span><span class="special">></span>
+          <span class="special">,</span> <span class="identifier">FusionKey</span>
+        <span class="special">></span>
+      <span class="special">,</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">false_</span>
+    <span class="special">>::</span><span class="identifier">type</span>
+  <span class="special">,</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">fusion</span><span class="special">::</span><span class="identifier">result_of</span><span class="special">::</span><span class="identifier">at_key</span><span class="special"><</span><span class="identifier">T</span> <span class="keyword">const</span><span class="special">,</span><span class="identifier">FusionKey</span><span class="special">></span>
+<span class="special">>::</span><span class="identifier">type</span>
+    <span class="keyword">operator</span><span class="special">[](</span><span class="identifier">FusionKey</span> <span class="keyword">const</span><span class="special">&)</span> <span class="keyword">const</span><span class="special">;</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">public</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">nary_node_base</span></code>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    User data member access
+                  </p>
+                </td>
+<td>
+<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">FusionKey</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">lazy_enable_if</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">mpl</span><span class="special">::</span><span class="identifier">if_</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">mpl</span><span class="special">::</span><span class="identifier">eval_if</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">fusion</span><span class="special">::</span><span class="identifier">traits</span><span class="special">::</span><span class="identifier">is_sequence</span><span class="special"><</span><span class="identifier">T</span><span class="special">>::</span><span class="identifier">type</span>
+          <span class="special">,</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">fusion</span><span class="special">::</span><span class="identifier">traits</span><span class="special">::</span><span class="identifier">is_associative</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span>
+          <span class="special">,</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">false_</span>
+        <span class="special">>::</span><span class="identifier">type</span>
+      <span class="special">,</span> <span class="identifier">result_of</span><span class="special">::</span><span class="identifier">has_key</span><span class="special"><</span>
+            <span class="identifier">nary_node_base</span><span class="special"><</span><span class="identifier">Derived</span><span class="special">,</span><span class="identifier">T</span><span class="special">,</span><span class="identifier">Selector</span><span class="special">></span>
+          <span class="special">,</span> <span class="identifier">FusionKey</span>
+        <span class="special">></span>
+      <span class="special">,</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">false_</span>
+    <span class="special">>::</span><span class="identifier">type</span>
+  <span class="special">,</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">fusion</span><span class="special">::</span><span class="identifier">result_of</span><span class="special">::</span><span class="identifier">at_key</span><span class="special"><</span><span class="identifier">T</span><span class="special">,</span><span class="identifier">FusionKey</span><span class="special">></span>
+<span class="special">>::</span><span class="identifier">type</span>
+    <span class="keyword">operator</span><span class="special">[](</span><span class="identifier">FusionKey</span> <span class="keyword">const</span><span class="special">&);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">public</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">nary_node_base</span></code>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Parent access
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">const_pointer</span> <span class="identifier">get_parent_ptr</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">public</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>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">pointer</span> <span class="identifier">get_parent_ptr</span><span class="special">();</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">public</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
+                  </p>
+                </td>
+<td>
+<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="special">...</span><span class="identifier">Args</span><span class="special">></span>
+<span class="identifier">iterator</span> <span class="identifier">emplace</span><span class="special">(</span><span class="identifier">Args</span><span class="special">&&</span> <span class="special">...</span><span class="identifier">args</span><span class="special">);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">public</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <a class="link" href="../concepts/nary_tree_node.html" title="N-ary Tree Node"><span class="bold"><strong>N-ary
+                    Tree Node</strong></span></a>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Child copy creation
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">iterator</span> <span class="identifier">insert</span><span class="special">(</span><span class="identifier">Derived</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">child</span><span class="special">);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">public</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <a class="link" href="../concepts/nary_tree_node.html" title="N-ary Tree Node"><span class="bold"><strong>N-ary
+                    Tree Node</strong></span></a>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Child move insertion
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">iterator</span> <span class="identifier">insert</span><span class="special">(</span><span class="identifier">Derived</span><span class="special">&&</span> <span class="identifier">child</span><span class="special">);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">public</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <a class="link" href="../concepts/nary_tree_node.html" title="N-ary Tree Node"><span class="bold"><strong>N-ary
+                    Tree Node</strong></span></a>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Children range begin read-only access
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">const_iterator</span> <span class="identifier">cbegin</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+<span class="identifier">const_iterator</span> <span class="identifier">begin</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">public</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>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">iterator</span> <span class="identifier">begin</span><span class="special">();</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">public</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 read-only access
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">const_iterator</span> <span class="identifier">cend</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+<span class="identifier">const_iterator</span> <span class="identifier">end</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">public</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>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">iterator</span> <span class="identifier">end</span><span class="special">();</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">public</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 reverse range begin read-only access
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">const_reverse_iterator</span> <span class="identifier">crbegin</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+<span class="identifier">const_reverse_iterator</span> <span class="identifier">rbegin</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">public</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <a class="link" href="../concepts/reversible_tree_node.html" title="Reversible Tree Node"><span class="bold"><strong>Reversible Tree Node</strong></span></a>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Children reverse range begin access
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">reverse_iterator</span> <span class="identifier">rbegin</span><span class="special">();</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">public</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <a class="link" href="../concepts/reversible_tree_node.html" title="Reversible Tree Node"><span class="bold"><strong>Reversible Tree Node</strong></span></a>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Children reverse range past-the-end read-only access
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">const_reverse_iterator</span> <span class="identifier">crend</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+<span class="identifier">const_reverse_iterator</span> <span class="identifier">rend</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">public</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <a class="link" href="../concepts/reversible_tree_node.html" title="Reversible Tree Node"><span class="bold"><strong>Reversible Tree Node</strong></span></a>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Children reverse range past-the-end access
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">reverse_iterator</span> <span class="identifier">rend</span><span class="special">();</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">public</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <a class="link" href="../concepts/reversible_tree_node.html" title="Reversible Tree Node"><span class="bold"><strong>Reversible Tree Node</strong></span></a>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Children range size query
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">size_type</span> <span class="identifier">size</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">public</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>
+                    Leaf node query
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">bool</span> <span class="identifier">empty</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">public</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>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">void</span> <span class="identifier">clear</span><span class="special">();</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">public</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>
+                    Splice node
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">typename</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">insert_range_result_gen</span><span class="special"><</span><span class="identifier">Selector</span><span class="special">,</span><span class="identifier">Derived</span><span class="special">>::</span><span class="identifier">type</span>
+    <span class="identifier">splice</span><span class="special">(</span><span class="identifier">iterator</span> <span class="identifier">pos</span><span class="special">,</span> <span class="identifier">Derived</span><span class="special">&</span> <span class="identifier">node</span><span class="special">);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">public</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <a class="link" href="../concepts/nary_tree_node.html" title="N-ary Tree Node"><span class="bold"><strong>N-ary
+                    Tree Node</strong></span></a>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Splice single child
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">typename</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">insert_range_result_gen</span><span class="special"><</span><span class="identifier">Selector</span><span class="special">,</span><span class="identifier">Derived</span><span class="special">>::</span><span class="identifier">type</span>
+    <span class="identifier">splice</span><span class="special">(</span><span class="identifier">iterator</span> <span class="identifier">pos</span><span class="special">,</span> <span class="identifier">Derived</span><span class="special">&</span> <span class="identifier">node</span><span class="special">,</span> <span class="identifier">iterator</span> <span class="identifier">itr</span><span class="special">);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">public</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <a class="link" href="../concepts/nary_tree_node.html" title="N-ary Tree Node"><span class="bold"><strong>N-ary
+                    Tree Node</strong></span></a>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Splice range
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">typename</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">insert_range_result_gen</span><span class="special"><</span><span class="identifier">Selector</span><span class="special">,</span><span class="identifier">Derived</span><span class="special">>::</span><span class="identifier">type</span>
+    <span class="identifier">splice</span><span class="special">(</span>
+        <span class="identifier">iterator</span> <span class="identifier">pos</span>
+      <span class="special">,</span> <span class="identifier">Derived</span><span class="special">&</span> <span class="identifier">node</span>
+      <span class="special">,</span> <span class="identifier">iterator</span> <span class="identifier">itr</span>
+      <span class="special">,</span> <span class="identifier">iterator</span> <span class="identifier">itr_end</span>
+    <span class="special">);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">public</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <a class="link" href="../concepts/nary_tree_node.html" title="N-ary Tree Node"><span class="bold"><strong>N-ary
+                    Tree Node</strong></span></a>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Derived read-only access
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">const_pointer</span> <span class="identifier">get_derived</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">public</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <a class="link" href="../concepts/base_tree_node.html" title="Base Tree Node"><span class="bold"><strong>Base
+                    Tree Node</strong></span></a>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Derived access
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">pointer</span> <span class="identifier">get_derived</span><span class="special">();</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">public</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <a class="link" href="../concepts/base_tree_node.html" title="Base Tree Node"><span class="bold"><strong>Base
+                    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.nary_node_base.non_members"></a><a class="link" href="nary_node_base.html#tree_node.reference.nary_node_base.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>
+                    Definition
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Where defined
+                  </p>
+                </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+                  <p>
+                    User data read-only access
+                  </p>
+                </td>
+<td>
+<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">Derived</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Selector</span><span class="special">></span>
+    <span class="keyword">typename</span> <span class="identifier">nary_node_base</span><span class="special"><</span>
+        <span class="identifier">Derived</span>
+      <span class="special">,</span> <span class="identifier">T</span>
+      <span class="special">,</span> <span class="identifier">Selector</span>
+    <span class="special">>::</span><span class="identifier">traits</span><span class="special">::</span><span class="identifier">data_type</span> <span class="keyword">const</span><span class="special">&</span>
+        <span class="identifier">get</span><span class="special">(</span>
+            <span class="identifier">nary_node_base</span><span class="special"><</span><span class="identifier">Derived</span><span class="special">,</span><span class="identifier">T</span><span class="special">,</span><span class="identifier">Selector</span><span class="special">></span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">node</span>
+          <span class="special">,</span> <span class="identifier">data_key</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">key</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">Derived</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Selector</span><span class="special">></span>
+    <span class="keyword">typename</span> <span class="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">std</span><span class="special">::</span><span class="identifier">tr1</span><span class="special">::</span><span class="identifier">is_same</span><span class="special"><</span><span class="identifier">Key</span><span class="special">,</span><span class="identifier">data_key</span><span class="special">></span>
+      <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">nary_node_base</span><span class="special"><</span>
+            <span class="identifier">Derived</span>
+          <span class="special">,</span> <span class="identifier">T</span>
+          <span class="special">,</span> <span class="identifier">Selector</span>
+        <span class="special">>::</span><span class="identifier">traits</span><span class="special">::</span><span class="identifier">data_type</span> <span class="keyword">const</span><span class="special">&</span>
+    <span class="special">>::</span><span class="identifier">type</span>
+        <span class="identifier">get</span><span class="special">(</span><span class="identifier">nary_node_base</span><span class="special"><</span><span class="identifier">Derived</span><span class="special">,</span><span class="identifier">T</span><span class="special">,</span><span class="identifier">Selector</span><span class="special">></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>
+                </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>
+                    user data access
+                  </p>
+                </td>
+<td>
+<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">Derived</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Selector</span><span class="special">></span>
+    <span class="keyword">typename</span> <span class="identifier">nary_node_base</span><span class="special"><</span><span class="identifier">Derived</span><span class="special">,</span><span class="identifier">T</span><span class="special">,</span><span class="identifier">Selector</span><span class="special">>::</span><span class="identifier">traits</span><span class="special">::</span><span class="identifier">data_type</span><span class="special">&</span>
+        <span class="identifier">get</span><span class="special">(</span><span class="identifier">nary_node_base</span><span class="special"><</span><span class="identifier">Derived</span><span class="special">,</span><span class="identifier">T</span><span class="special">,</span><span class="identifier">Selector</span><span class="special">>&</span> <span class="identifier">node</span><span class="special">,</span> <span class="identifier">data_key</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">key</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">Derived</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Selector</span><span class="special">></span>
+    <span class="keyword">typename</span> <span class="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">std</span><span class="special">::</span><span class="identifier">tr1</span><span class="special">::</span><span class="identifier">is_same</span><span class="special"><</span><span class="identifier">Key</span><span class="special">,</span><span class="identifier">data_key</span><span class="special">></span>
+      <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">nary_node_base</span><span class="special"><</span>
+            <span class="identifier">Derived</span>
+          <span class="special">,</span> <span class="identifier">T</span>
+          <span class="special">,</span> <span class="identifier">Selector</span>
+        <span class="special">>::</span><span class="identifier">traits</span><span class="special">::</span><span class="identifier">data_type</span><span class="special">&</span>
+    <span class="special">>::</span><span class="identifier">type</span>
+        <span class="identifier">get</span><span class="special">(</span><span class="identifier">nary_node_base</span><span class="special"><</span><span class="identifier">Derived</span><span class="special">,</span><span class="identifier">T</span><span class="special">,</span><span class="identifier">Selector</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>
+                </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>
+                    User data modification
+                  </p>
+                </td>
+<td>
+<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">Derived</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">T</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Selector</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">V</span><span class="special">></span>
+    <span class="keyword">void</span>
+        <span class="identifier">put</span><span class="special">(</span>
+            <span class="identifier">nary_node_base</span><span class="special"><</span><span class="identifier">Derived</span><span class="special">,</span><span class="identifier">T</span><span class="special">,</span><span class="identifier">Selector</span><span class="special">>&</span> <span class="identifier">node</span>
+          <span class="special">,</span> <span class="identifier">data_key</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">key</span>
+          <span class="special">,</span> <span class="identifier">V</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">value</span>
+        <span class="special">);</span>
+<span class="special">}}</span>  <span class="comment">// namespace boost::tree_node</span>
+</pre>
+                </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>
+                    Key-value read-only access
+                  </p>
+                </td>
+<td>
+<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">Derived</span>
+      <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">T</span>
+      <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Selector</span>
+      <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">FusionKey</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">lazy_enable_if</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">mpl</span><span class="special">::</span><span class="identifier">if_</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">mpl</span><span class="special">::</span><span class="identifier">eval_if</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">fusion</span><span class="special">::</span><span class="identifier">traits</span><span class="special">::</span><span class="identifier">is_sequence</span><span class="special"><</span><span class="identifier">T</span><span class="special">>::</span><span class="identifier">type</span>
+              <span class="special">,</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">fusion</span><span class="special">::</span><span class="identifier">traits</span><span class="special">::</span><span class="identifier">is_associative</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span>
+              <span class="special">,</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">false_</span>
+            <span class="special">>::</span><span class="identifier">type</span>
+          <span class="special">,</span> <span class="identifier">result_of</span><span class="special">::</span><span class="identifier">has_key</span><span class="special"><</span>
+                <span class="identifier">nary_node_base</span><span class="special"><</span><span class="identifier">Derived</span><span class="special">,</span><span class="identifier">T</span><span class="special">,</span><span class="identifier">Selector</span><span class="special">></span>
+              <span class="special">,</span> <span class="identifier">FusionKey</span>
+            <span class="special">></span>
+          <span class="special">,</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">false_</span>
+        <span class="special">>::</span><span class="identifier">type</span>
+      <span class="special">,</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">fusion</span><span class="special">::</span><span class="identifier">result_of</span><span class="special">::</span><span class="identifier">at_key</span><span class="special"><</span><span class="identifier">T</span> <span class="keyword">const</span><span class="special">,</span><span class="identifier">FusionKey</span><span class="special">></span>
+    <span class="special">>::</span><span class="identifier">type</span>
+        <span class="identifier">get</span><span class="special">(</span>
+            <span class="identifier">nary_node_base</span><span class="special"><</span><span class="identifier">Derived</span><span class="special">,</span><span class="identifier">T</span><span class="special">,</span><span class="identifier">Selector</span><span class="special">></span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">node</span>
+          <span class="special">,</span> <span class="identifier">FusionKey</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">key</span>
+        <span class="special">);</span>
+
+    <span class="keyword">template</span> <span class="special"><</span>
+        <span class="keyword">typename</span> <span class="identifier">FusionKey</span>
+      <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Derived</span>
+      <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">T</span>
+      <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Selector</span>
+    <span class="special">></span>
+    <span class="keyword">typename</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">lazy_enable_if</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">mpl</span><span class="special">::</span><span class="identifier">if_</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">mpl</span><span class="special">::</span><span class="identifier">eval_if</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">fusion</span><span class="special">::</span><span class="identifier">traits</span><span class="special">::</span><span class="identifier">is_sequence</span><span class="special"><</span><span class="identifier">T</span><span class="special">>::</span><span class="identifier">type</span>
+              <span class="special">,</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">fusion</span><span class="special">::</span><span class="identifier">traits</span><span class="special">::</span><span class="identifier">is_associative</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span>
+              <span class="special">,</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">false_</span>
+            <span class="special">>::</span><span class="identifier">type</span>
+          <span class="special">,</span> <span class="identifier">result_of</span><span class="special">::</span><span class="identifier">has_key</span><span class="special"><</span>
+                <span class="identifier">nary_node_base</span><span class="special"><</span><span class="identifier">Derived</span><span class="special">,</span><span class="identifier">T</span><span class="special">,</span><span class="identifier">Selector</span><span class="special">></span>
+              <span class="special">,</span> <span class="identifier">FusionKey</span>
+            <span class="special">></span>
+          <span class="special">,</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">false_</span>
+        <span class="special">>::</span><span class="identifier">type</span>
+      <span class="special">,</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">fusion</span><span class="special">::</span><span class="identifier">result_of</span><span class="special">::</span><span class="identifier">at_key</span><span class="special"><</span><span class="identifier">T</span> <span class="keyword">const</span><span class="special">,</span><span class="identifier">FusionKey</span><span class="special">></span>
+    <span class="special">>::</span><span class="identifier">type</span>
+        <span class="identifier">get</span><span class="special">(</span><span class="identifier">nary_node_base</span><span class="special"><</span><span class="identifier">Derived</span><span class="special">,</span><span class="identifier">T</span><span class="special">,</span><span class="identifier">Selector</span><span class="special">></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>
+                </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>
+                    Key-value access
+                  </p>
+                </td>
+<td>
+<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">Derived</span>
+      <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">T</span>
+      <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Selector</span>
+      <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">FusionKey</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">lazy_enable_if</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">mpl</span><span class="special">::</span><span class="identifier">if_</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">mpl</span><span class="special">::</span><span class="identifier">eval_if</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">fusion</span><span class="special">::</span><span class="identifier">traits</span><span class="special">::</span><span class="identifier">is_sequence</span><span class="special"><</span><span class="identifier">T</span><span class="special">>::</span><span class="identifier">type</span>
+              <span class="special">,</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">fusion</span><span class="special">::</span><span class="identifier">traits</span><span class="special">::</span><span class="identifier">is_associative</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span>
+              <span class="special">,</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">false_</span>
+            <span class="special">>::</span><span class="identifier">type</span>
+          <span class="special">,</span> <span class="identifier">result_of</span><span class="special">::</span><span class="identifier">has_key</span><span class="special"><</span>
+                <span class="identifier">nary_node_base</span><span class="special"><</span><span class="identifier">Derived</span><span class="special">,</span><span class="identifier">T</span><span class="special">,</span><span class="identifier">Selector</span><span class="special">></span>
+              <span class="special">,</span> <span class="identifier">FusionKey</span>
+            <span class="special">></span>
+          <span class="special">,</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">false_</span>
+        <span class="special">>::</span><span class="identifier">type</span>
+      <span class="special">,</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">fusion</span><span class="special">::</span><span class="identifier">result_of</span><span class="special">::</span><span class="identifier">at_key</span><span class="special"><</span><span class="identifier">T</span><span class="special">,</span><span class="identifier">FusionKey</span><span class="special">></span>
+    <span class="special">>::</span><span class="identifier">type</span>
+        <span class="identifier">get</span><span class="special">(</span><span class="identifier">nary_node_base</span><span class="special"><</span><span class="identifier">Derived</span><span class="special">,</span><span class="identifier">T</span><span class="special">,</span><span class="identifier">Selector</span><span class="special">>&</span> <span class="identifier">node</span><span class="special">,</span> <span class="identifier">FusionKey</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">key</span><span class="special">);</span>
+
+    <span class="keyword">template</span> <span class="special"><</span>
+        <span class="keyword">typename</span> <span class="identifier">FusionKey</span>
+      <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Derived</span>
+      <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">T</span>
+      <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Selector</span>
+    <span class="special">></span>
+    <span class="keyword">typename</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">lazy_enable_if</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">mpl</span><span class="special">::</span><span class="identifier">if_</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">mpl</span><span class="special">::</span><span class="identifier">eval_if</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">fusion</span><span class="special">::</span><span class="identifier">traits</span><span class="special">::</span><span class="identifier">is_sequence</span><span class="special"><</span><span class="identifier">T</span><span class="special">>::</span><span class="identifier">type</span>
+              <span class="special">,</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">fusion</span><span class="special">::</span><span class="identifier">traits</span><span class="special">::</span><span class="identifier">is_associative</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span>
+              <span class="special">,</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">false_</span>
+            <span class="special">>::</span><span class="identifier">type</span>
+          <span class="special">,</span> <span class="identifier">result_of</span><span class="special">::</span><span class="identifier">has_key</span><span class="special"><</span>
+                <span class="identifier">nary_node_base</span><span class="special"><</span><span class="identifier">Derived</span><span class="special">,</span><span class="identifier">T</span><span class="special">,</span><span class="identifier">Selector</span><span class="special">></span>
+              <span class="special">,</span> <span class="identifier">FusionKey</span>
+            <span class="special">></span>
+          <span class="special">,</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">false_</span>
+        <span class="special">>::</span><span class="identifier">type</span>
+      <span class="special">,</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">fusion</span><span class="special">::</span><span class="identifier">result_of</span><span class="special">::</span><span class="identifier">at_key</span><span class="special"><</span><span class="identifier">T</span><span class="special">,</span><span class="identifier">FusionKey</span><span class="special">></span>
+    <span class="special">>::</span><span class="identifier">type</span>
+        <span class="identifier">get</span><span class="special">(</span><span class="identifier">nary_node_base</span><span class="special"><</span><span class="identifier">Derived</span><span class="special">,</span><span class="identifier">T</span><span class="special">,</span><span class="identifier">Selector</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>
+                </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>
+                    Key-value modification
+                  </p>
+                </td>
+<td>
+<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">Derived</span>
+      <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">T</span>
+      <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Selector</span>
+      <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">FusionKey</span>
+      <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">V</span>
+    <span class="special">></span>
+    <span class="keyword">void</span>
+        <span class="identifier">put</span><span class="special">(</span>
+            <span class="identifier">nary_node_base</span><span class="special"><</span><span class="identifier">Derived</span><span class="special">,</span><span class="identifier">T</span><span class="special">,</span><span class="identifier">Selector</span><span class="special">>&</span> <span class="identifier">node</span>
+          <span class="special">,</span> <span class="identifier">FusionKey</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">key</span>
+          <span class="special">,</span> <span class="identifier">V</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">value</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="keyword">typename</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">if_</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">mpl</span><span class="special">::</span><span class="identifier">eval_if</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">fusion</span><span class="special">::</span><span class="identifier">traits</span><span class="special">::</span><span class="identifier">is_sequence</span><span class="special"><</span><span class="identifier">T</span><span class="special">>::</span><span class="identifier">type</span>
+                <span class="special">,</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">fusion</span><span class="special">::</span><span class="identifier">traits</span><span class="special">::</span><span class="identifier">is_associative</span><span class="special"><</span><span class="identifier">T</span><span class="special">></span>
+                <span class="special">,</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">false_</span>
+                <span class="special">>::</span><span class="identifier">type</span>
+              <span class="special">,</span> <span class="identifier">result_of</span><span class="special">::</span><span class="identifier">has_key</span><span class="special"><</span>
+                  <span class="identifier">nary_node_base</span><span class="special"><</span><span class="identifier">Derived</span><span class="special">,</span><span class="identifier">T</span><span class="special">,</span><span class="identifier">Selector</span><span class="special">></span>
+                <span class="special">,</span> <span class="identifier">FusionKey</span>
+                <span class="special">></span>
+              <span class="special">,</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">false_</span>
+              <span class="special">>::</span><span class="identifier">type</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">true_</span>
+            <span class="special">>::</span><span class="identifier">type</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">true_</span><span class="special">()</span>
+        <span class="special">);</span>
+<span class="special">}}</span>  <span class="comment">// namespace boost::tree_node</span>
+</pre>
+                </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>
+<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-2013 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="nary_node_gen.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="nary_node_base_gen.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/nary_node_base_gen.html
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/nary_node_base_gen.html	2013-07-07 14:52:52 EDT (Sun, 07 Jul 2013)	(r84977)
@@ -0,0 +1,179 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>nary_node_base_gen<Selector></title>
+<link rel="stylesheet" href="http://www.boost.org/doc/libs/release/doc/src/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.77.1">
+<link rel="home" href="../../index.html" title="Chapter 1. tree_node 0.5">
+<link rel="up" href="../reference.html" title="Reference">
+<link rel="prev" href="nary_node_base.html" title="nary_node_base<Derived,T,Selector>">
+<link rel="next" href="associative_node.html" title="associative_node<Key,Data,Selector>">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr><td valign="top"><img alt="C++ Boost" width="277" height="86" src="../../../../../../boost.png"></td></tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="nary_node_base.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="associative_node.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="tree_node.reference.nary_node_base_gen"></a><a class="link" href="nary_node_base_gen.html" title="nary_node_base_gen<Selector>"><code class="computeroutput"><span class="identifier">nary_node_base_gen</span><span class="special"><</span><span class="identifier">Selector</span><span class="special">></span></code></a>
+</h3></div></div></div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.nary_node_base_gen.synopsis"></a><a class="link" href="nary_node_base_gen.html#tree_node.reference.nary_node_base_gen.synopsis" title="Synopsis">Synopsis</a>
+</h4></div></div></div>
+<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">Selector</span> <span class="special">=</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_dequeS</span><span class="special">></span>
+    <span class="keyword">struct</span> <span class="identifier">nary_node_base_gen</span>
+    <span class="special">{</span>
+        <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">Derived</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">T</span><span class="special">></span>
+        <span class="keyword">struct</span> <span class="identifier">apply</span>
+        <span class="special">{</span>
+            <span class="keyword">typedef</span> <span class="identifier">nary_node_base</span><span class="special"><</span><span class="identifier">Derived</span><span class="special">,</span><span class="identifier">T</span><span class="special">,</span><span class="identifier">Selector</span><span class="special">></span> <span class="identifier">type</span><span class="special">;</span>
+        <span class="special">};</span>
+    <span class="special">};</span>
+
+    <span class="keyword">typedef</span> <span class="identifier">nary_node_base_gen</span><span class="special"><></span> <span class="identifier">nary_node_base_default_gen</span><span class="special">;</span>
+<span class="special">}}</span>  <span class="comment">// namespace boost::tree_node</span>
+</pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.nary_node_base_gen.description"></a><a class="link" href="nary_node_base_gen.html#tree_node.reference.nary_node_base_gen.description" title="Description">Description</a>
+</h4></div></div></div>
+<p>
+          Minimalist selector that can be passed on to generic functions and/or data
+          structures that use models of the <a class="link" href="../concepts/nary_tree_node.html" title="N-ary Tree Node"><span class="bold"><strong>N-ary Tree Node</strong></span></a> and <a class="link" href="../concepts/base_tree_node.html" title="Base Tree Node"><span class="bold"><strong>Base Tree Node</strong></span></a> concepts.
+        </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.nary_node_base_gen.definition"></a><a class="link" href="nary_node_base_gen.html#tree_node.reference.nary_node_base_gen.definition" title="Where defined">Where
+        defined</a>
+</h4></div></div></div>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span>boost/tree_node/nary_node.hpp<span class="special">></span>
+</pre>
+<p>
+          To register under Boost.Typeof:
+        </p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span>boost/typeof/boost/tree_node/nary_node.hpp<span class="special">></span>
+</pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.nary_node_base_gen.model_of"></a><a class="link" href="nary_node_base_gen.html#tree_node.reference.nary_node_base_gen.model_of" title="Model of">Model
+        of</a>
+</h4></div></div></div>
+<p>
+          <a class="link" href="../concepts/base_type_generator.html" title="Base Type Generator"><span class="bold"><strong>Base
+          Type Generator</strong></span></a>
+        </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.nary_node_base_gen.tpl_param"></a><a class="link" href="nary_node_base_gen.html#tree_node.reference.nary_node_base_gen.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">Selector</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    The type that determines the child container type of <a class="link" href="nary_node_base.html" title="nary_node_base<Derived,T,Selector>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">nary_node_base</span></code></a>.
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="literal">boost::is_recursive_selector<Selector></code>
+                    must return boost::mpl::true_.
+                  </p>
+                </td>
+<td>
+                  <p>
+                    boost::ptr_dequeS
+                  </p>
+                </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.nary_node_base_gen.expressions"></a><a class="link" href="nary_node_base_gen.html#tree_node.reference.nary_node_base_gen.expressions" title="Expression Semantics">Expression
+        Semantics</a>
+</h4></div></div></div>
+<p>
+          Let <code class="computeroutput"><span class="identifier">Derived</span></code> be the type
+          that will inherit from <a class="link" href="nary_node_base.html" title="nary_node_base<Derived,T,Selector>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">nary_node_base</span></code></a>.
+        </p>
+<p>
+          Let <code class="computeroutput"><span class="identifier">T</span></code> be the user data
+          type.
+        </p>
+<p>
+          Let <code class="computeroutput"><span class="identifier">Selector</span></code> be a valid
+          <code class="computeroutput"><span class="identifier">nary_node_gen</span></code> template
+          argument.
+        </p>
+<pre class="programlisting"><span class="keyword">typedef</span> boost::mpl::apply_wrap2<span class="special"><</span><span class="identifier">nary_node_base_gen</span><span class="special"><</span><span class="identifier">Selector</span><span class="special">>,</span><span class="identifier">Derived</span><span class="special">,</span><span class="identifier">T</span><span class="special">>::</span><span class="identifier">type</span> <span class="identifier">r</span><span class="special">;</span>
+</pre>
+<p>
+          <span class="bold"><strong>Return type:</strong></span> <code class="literal"><a class="link" href="nary_node_base.html" title="nary_node_base<Derived,T,Selector>">tree_node::nary_node_base</a><Derived,T,Selector></code>
+        </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.nary_node_base_gen.complexity"></a><a class="link" href="nary_node_base_gen.html#tree_node.reference.nary_node_base_gen.complexity" title="Complexity">Complexity</a>
+</h4></div></div></div>
+<p>
+          Compile time.
+        </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-2013 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="nary_node_base.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="associative_node.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/nary_node_gen.html
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/nary_node_gen.html	2013-07-07 14:52:52 EDT (Sun, 07 Jul 2013)	(r84977)
@@ -0,0 +1,174 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>nary_node_gen<Selector></title>
+<link rel="stylesheet" href="http://www.boost.org/doc/libs/release/doc/src/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.77.1">
+<link rel="home" href="../../index.html" title="Chapter 1. tree_node 0.5">
+<link rel="up" href="../reference.html" title="Reference">
+<link rel="prev" href="nary_node.html" title="nary_node<T,Selector>">
+<link rel="next" href="nary_node_base.html" title="nary_node_base<Derived,T,Selector>">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr><td valign="top"><img alt="C++ Boost" width="277" height="86" src="../../../../../../boost.png"></td></tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="nary_node.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="nary_node_base.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="tree_node.reference.nary_node_gen"></a><a class="link" href="nary_node_gen.html" title="nary_node_gen<Selector>"><code class="computeroutput"><span class="identifier">nary_node_gen</span><span class="special"><</span><span class="identifier">Selector</span><span class="special">></span></code></a>
+</h3></div></div></div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.nary_node_gen.synopsis"></a><a class="link" href="nary_node_gen.html#tree_node.reference.nary_node_gen.synopsis" title="Synopsis">Synopsis</a>
+</h4></div></div></div>
+<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">Selector</span> <span class="special">=</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">ptr_dequeS</span><span class="special">></span>
+    <span class="keyword">struct</span> <span class="identifier">nary_node_gen</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">struct</span> <span class="identifier">apply</span>
+        <span class="special">{</span>
+            <span class="keyword">typedef</span> <span class="identifier">nary_node</span><span class="special"><</span><span class="identifier">T</span><span class="special">,</span><span class="identifier">Selector</span><span class="special">></span> <span class="identifier">type</span><span class="special">;</span>
+        <span class="special">};</span>
+    <span class="special">};</span>
+
+    <span class="keyword">typedef</span> <span class="identifier">nary_node_gen</span><span class="special"><></span> <span class="identifier">nary_node_default_gen</span><span class="special">;</span>
+<span class="special">}}</span>  <span class="comment">// namespace boost::tree_node</span>
+</pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.nary_node_gen.description"></a><a class="link" href="nary_node_gen.html#tree_node.reference.nary_node_gen.description" title="Description">Description</a>
+</h4></div></div></div>
+<p>
+          Minimalist selector that can be passed on to generic functions and/or data
+          structures that use <a class="link" href="../concepts/nary_tree_node.html" title="N-ary Tree Node"><span class="bold"><strong>N-ary Tree Node</strong></span></a> models.
+        </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.nary_node_gen.definition"></a><a class="link" href="nary_node_gen.html#tree_node.reference.nary_node_gen.definition" title="Where defined">Where
+        defined</a>
+</h4></div></div></div>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span>boost/tree_node/nary_node.hpp<span class="special">></span>
+</pre>
+<p>
+          To register under Boost.Typeof:
+        </p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span>boost/typeof/boost/tree_node/nary_node.hpp<span class="special">></span>
+</pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.nary_node_gen.model_of"></a><a class="link" href="nary_node_gen.html#tree_node.reference.nary_node_gen.model_of" title="Model of">Model of</a>
+</h4></div></div></div>
+<p>
+          <a class="link" href="../concepts/node_type_generator.html" title="Node Type Generator"><span class="bold"><strong>Node
+          Type Generator</strong></span></a>
+        </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.nary_node_gen.tpl_param"></a><a class="link" href="nary_node_gen.html#tree_node.reference.nary_node_gen.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">Selector</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    The type that determines the child container type of <a class="link" href="nary_node.html" title="nary_node<T,Selector>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">nary_node</span></code></a>.
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="literal">boost::is_recursive_selector<Selector></code>
+                    must return boost::mpl::true_.
+                  </p>
+                </td>
+<td>
+                  <p>
+                    boost::ptr_dequeS
+                  </p>
+                </td>
+</tr></tbody>
+</table></div>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.nary_node_gen.expressions"></a><a class="link" href="nary_node_gen.html#tree_node.reference.nary_node_gen.expressions" title="Expression Semantics">Expression
+        Semantics</a>
+</h4></div></div></div>
+<p>
+          Let <code class="computeroutput"><span class="identifier">T</span></code> be the user data
+          type.
+        </p>
+<p>
+          Let <code class="computeroutput"><span class="identifier">Selector</span></code> be a valid
+          <code class="computeroutput"><span class="identifier">nary_node_gen</span></code> template
+          argument.
+        </p>
+<pre class="programlisting"><span class="keyword">typedef</span> boost::mpl::apply_wrap1<span class="special"><</span><span class="identifier">nary_node_gen</span><span class="special"><</span><span class="identifier">Selector</span><span class="special">>,</span><span class="identifier">T</span><span class="special">>::</span><span class="identifier">type</span> <span class="identifier">r</span><span class="special">;</span>
+</pre>
+<p>
+          <span class="bold"><strong>Return type:</strong></span> <code class="literal"><a class="link" href="nary_node.html" title="nary_node<T,Selector>">tree_node::nary_node</a><T,Selector></code>
+        </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.nary_node_gen.complexity"></a><a class="link" href="nary_node_gen.html#tree_node.reference.nary_node_gen.complexity" title="Complexity">Complexity</a>
+</h4></div></div></div>
+<p>
+          Compile time.
+        </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-2013 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="nary_node.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="nary_node_base.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/null_balancer.html
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/null_balancer.html	2013-07-07 14:52:52 EDT (Sun, 07 Jul 2013)	(r84977)
@@ -0,0 +1,88 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>null_balancer</title>
+<link rel="stylesheet" href="http://www.boost.org/doc/libs/release/doc/src/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.77.1">
+<link rel="home" href="../../index.html" title="Chapter 1. tree_node 0.5">
+<link rel="up" href="../reference.html" title="Reference">
+<link rel="prev" href="binode_multimap.html" title="binode_multimap<NodeGenerator,Key,Mapped,CompareSelector,Balancer>">
+<link rel="next" href="red_black_balancer.html" title="red_black_balancer">
+</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="binode_multimap.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="red_black_balancer.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="tree_node.reference.null_balancer"></a><a class="link" href="null_balancer.html" title="null_balancer"><code class="computeroutput"><span class="identifier">null_balancer</span></code></a>
+</h3></div></div></div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.null_balancer.synopsis"></a><a class="link" href="null_balancer.html#tree_node.reference.null_balancer.synopsis" title="Synopsis">Synopsis</a>
+</h4></div></div></div>
+<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">struct</span> <span class="identifier">null_balancer</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">static</span> <span class="identifier">NodePointer</span> <span class="identifier">post_insert</span><span class="special">(</span><span class="identifier">NodePointer</span> <span class="identifier">node_ptr</span><span class="special">);</span>
+
+        <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">Node</span><span class="special">></span>
+        <span class="keyword">static</span> <span class="keyword">bool</span> <span class="identifier">choose_predecessor</span><span class="special">(</span><span class="identifier">Node</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">Node</span><span class="special">></span>
+        <span class="keyword">static</span> <span class="keyword">bool</span> <span class="identifier">pre_erase</span><span class="special">(</span><span class="identifier">Node</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">static</span> <span class="identifier">NodePointer</span> <span class="identifier">post_erase_left</span><span class="special">(</span><span class="identifier">NodePointer</span> <span class="identifier">node_ptr</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">static</span> <span class="identifier">NodePointer</span> <span class="identifier">post_erase_right</span><span class="special">(</span><span class="identifier">NodePointer</span> <span class="identifier">node_ptr</span><span class="special">);</span>
+    <span class="special">};</span>
+
+    <span class="keyword">namespace</span> <span class="identifier">balancer</span> <span class="special">{</span>
+
+        <span class="keyword">typedef</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">null_balancer</span> <span class="identifier">null</span><span class="special">;</span>
+    <span class="special">}</span>  <span class="comment">// namespace balancer</span>
+<span class="special">}}</span>  <span class="comment">// namespace boost::tree_node</span>
+</pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.null_balancer.description"></a><a class="link" href="null_balancer.html#tree_node.reference.null_balancer.description" title="Description">Description</a>
+</h4></div></div></div>
+<p>
+          TODO.
+        </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.null_balancer.definition"></a><a class="link" href="null_balancer.html#tree_node.reference.null_balancer.definition" title="Where defined">Where
+        defined</a>
+</h4></div></div></div>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span>boost/tree_node/balancer/null.hpp<span class="special">></span>
+</pre>
+<p>
+          To register under Boost.Typeof:
+        </p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span>boost/typeof/boost/tree_node/balancer/null.hpp<span class="special">></span>
+</pre>
+</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-2013 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="binode_multimap.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="red_black_balancer.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/position_key.html
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/position_key.html	2013-07-07 14:52:52 EDT (Sun, 07 Jul 2013)	(r84977)
@@ -0,0 +1,71 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>position_key</title>
+<link rel="stylesheet" href="http://www.boost.org/doc/libs/release/doc/src/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.77.1">
+<link rel="home" href="../../index.html" title="Chapter 1. tree_node 0.5">
+<link rel="up" href="../reference.html" title="Reference">
+<link rel="prev" href="height_key.html" title="height_key">
+<link rel="next" href="red_black_flag_key.html" title="red_flag_key and black_flag_key">
+</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="height_key.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="red_black_flag_key.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="tree_node.reference.position_key"></a><a class="link" href="position_key.html" title="position_key"><code class="computeroutput"><span class="identifier">position_key</span></code></a>
+</h3></div></div></div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.position_key.synopsis"></a><a class="link" href="position_key.html#tree_node.reference.position_key.synopsis" title="Synopsis">Synopsis</a>
+</h4></div></div></div>
+<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">struct</span> <span class="identifier">position_key</span>
+    <span class="special">{</span>
+    <span class="special">};</span>
+<span class="special">}}</span>  <span class="comment">// namespace boost::tree_node</span>
+</pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.position_key.description"></a><a class="link" href="position_key.html#tree_node.reference.position_key.description" title="Description">Description</a>
+</h4></div></div></div>
+<p>
+          Use this type to access the iterator that points to a <a class="link" href="../concepts/tree_node.html" title="Tree Node"><span class="bold"><strong>Tree Node</strong></span></a> object in its parent's collection
+          of children. The <a class="link" href="../concepts/tree_node.html" title="Tree Node"><span class="bold"><strong>Tree Node</strong></span></a> type must ultimately inherit from
+          <a class="link" href="with_position_base.html" title="with_position_base<Derived,BaseGenerator,T1,T2>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">with_position_base</span></code></a>.
+        </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.position_key.definition"></a><a class="link" href="position_key.html#tree_node.reference.position_key.definition" title="Where defined">Where
+        defined</a>
+</h4></div></div></div>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span>boost/tree_node/key/position.hpp<span class="special">></span>
+</pre>
+<p>
+          To register under Boost.Typeof:
+        </p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span>boost/typeof/boost/tree_node/key/position.hpp<span class="special">></span>
+</pre>
+</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-2013 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="height_key.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="red_black_flag_key.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/post_order_desc_iter.html
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/post_order_desc_iter.html	2013-07-07 14:52:52 EDT (Sun, 07 Jul 2013)	(r84977)
@@ -0,0 +1,661 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>post_order_descendant_iterator<Node,IsReverse></title>
+<link rel="stylesheet" href="http://www.boost.org/doc/libs/release/doc/src/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.77.1">
+<link rel="home" href="../../index.html" title="Chapter 1. tree_node 0.5">
+<link rel="up" href="../reference.html" title="Reference">
+<link rel="prev" href="post_order_iterator.html" title="post_order_iterator<Node,IsReverse>">
+<link rel="next" href="in_order_iterator.html" title="in_order_iterator<Node,IsReverse>">
+</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="http://www.boost.org/doc/libs/release/doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="in_order_iterator.html"><img src="http://www.boost.org/doc/libs/release/doc/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_desc_iter"></a><a class="link" href="post_order_desc_iter.html" title="post_order_descendant_iterator<Node,IsReverse>"><code class="computeroutput"><span class="identifier">post_order_descendant_iterator</span><span class="special"><</span><span class="identifier">Node</span><span class="special">,</span><span class="identifier">IsReverse</span><span class="special">></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_desc_iter.synopsis"></a><a class="link" href="post_order_desc_iter.html#tree_node.reference.post_order_desc_iter.synopsis" title="Synopsis">Synopsis</a>
+</h4></div></div></div>
+<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">Node</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">IsReverse</span> <span class="special">=</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">false_</span><span class="special">></span>
+    <span class="keyword">class</span> <span class="identifier">post_order_descendant_iterator</span>
+      <span class="special">:</span> <span class="keyword">public</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">iterator_adaptor</span><span class="special"><</span>
+            <span class="identifier">post_order_descendant_iterator</span><span class="special"><</span><span class="identifier">Node</span><span class="special">,</span><span class="identifier">IsReverse</span><span class="special">></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">mpl</span><span class="special">::</span><span class="identifier">eval_if</span><span class="special"><</span>
+                <span class="identifier">IsReverse</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">if_</span><span class="special"><</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">is_const</span><span class="special"><</span><span class="identifier">Node</span><span class="special">></span>
+                  <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Node</span><span class="special">::</span><span class="identifier">const_reverse_iterator</span>
+                  <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Node</span><span class="special">::</span><span class="identifier">reverse_iterator</span>
+                <span class="special">></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">if_</span><span class="special"><</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">is_const</span><span class="special"><</span><span class="identifier">Node</span><span class="special">></span>
+                  <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Node</span><span class="special">::</span><span class="identifier">const_iterator</span>
+                  <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Node</span><span class="special">::</span><span class="identifier">iterator</span>
+                <span class="special">></span>
+            <span class="special">>::</span><span class="identifier">type</span>
+          <span class="special">,</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">use_default</span>
+          <span class="special">,</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">forward_traversal_tag</span>
+        <span class="special">></span>
+    <span class="special">{</span>
+        <span class="keyword">struct</span> <span class="identifier">enabler</span>
+        <span class="special">{</span>
+        <span class="special">};</span>
+
+     <span class="keyword">public</span><span class="special">:</span>
+        <span class="identifier">post_order_descendant_iterator</span><span class="special">();</span>
+
+        <span class="keyword">explicit</span> <span class="identifier">post_order_descendant_iterator</span><span class="special">(</span><span class="identifier">Node</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">N</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">I</span><span class="special">></span>
+        <span class="identifier">post_order_descendant_iterator</span><span class="special">(</span>
+            <span class="identifier">post_order_descendant_iterator</span><span class="special"><</span><span class="identifier">N</span><span class="special">,</span><span class="identifier">I</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="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="keyword">typename</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">if_</span><span class="special"><</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">is_convertible</span><span class="special"><</span><span class="identifier">N</span><span class="special">,</span><span class="identifier">Node</span><span class="special">></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">I</span><span class="special">,</span><span class="identifier">IsReverse</span><span class="special">></span>
+                  <span class="special">,</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">false_</span>
+                <span class="special">>::</span><span class="identifier">type</span>
+              <span class="special">,</span> <span class="identifier">enabler</span>
+            <span class="special">>::</span><span class="identifier">type</span> <span class="special">=</span> <span class="identifier">enabler</span><span class="special">()</span>
+        <span class="special">);</span>
+
+        <span class="keyword">operator</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">tree_node</span><span class="special">::</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>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.post_order_desc_iter.description"></a><a class="link" href="post_order_desc_iter.html#tree_node.reference.post_order_desc_iter.description" title="Description">Description</a>
+</h4></div></div></div>
+<p>
+          This iterator traverses the descendants of the root node passed to its
+          constructor in either post-order or reverse pre-order fashion, e.g. given
+          the following tree representation:
+        </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>
+          By default, this iterator will traverse the tree nodes in the following
+          order:
+        </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>
+          However, if <code class="computeroutput"><span class="identifier">IsReverse</span></code> evaluates
+          to boost::mpl::true_,
+          then this iterator will traverse the tree nodes in the following order:
+        </p>
+<pre class="programlisting"><span class="identifier">B</span> <span class="identifier">G</span> <span class="identifier">F</span> <span class="identifier">C</span> <span class="identifier">E</span> <span class="identifier">D</span>
+</pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.post_order_desc_iter.definition"></a><a class="link" href="post_order_desc_iter.html#tree_node.reference.post_order_desc_iter.definition" title="Where defined">Where
+        defined</a>
+</h4></div></div></div>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span>boost/tree_node/iterator/post_order_descendant.hpp<span class="special">></span>
+</pre>
+<p>
+          To register under Boost.Typeof:
+        </p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span>boost/typeof/boost/tree_node/iterator/post_order_descendant.hpp<span class="special">></span>
+</pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.post_order_desc_iter.tpl_param"></a><a class="link" href="post_order_desc_iter.html#tree_node.reference.post_order_desc_iter.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">Node</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    The type of a tree node.
+                  </p>
+                </td>
+<td>
+                  <p>
+                    It must model the <a class="link" href="../concepts/tree_node.html" title="Tree Node"><span class="bold"><strong>Tree Node</strong></span></a> concept, but it can be
+                    <code class="computeroutput"><span class="keyword">const</span></code>-qualified.
+                  </p>
+                </td>
+<td>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">IsReverse</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Configures the <code class="computeroutput"><span class="identifier">post_order_descendant_iterator</span></code>
+                    to traverse tree nodes in reverse pre-order fashion if equivalent
+                    to boost::mpl::true_; otherwise, the
+                    nodes will be traversed in post-order fashion.
+                  </p>
+                </td>
+<td>
+                  <p>
+                    It must model the Boolean Integral Constant concept.
+                  </p>
+                </td>
+<td>
+                  <p>
+                    boost::mpl::false_
+                  </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_desc_iter.model_of"></a><a class="link" href="post_order_desc_iter.html#tree_node.reference.post_order_desc_iter.model_of" title="Model of">Model
+        of</a>
+</h4></div></div></div>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem"><p>
+              <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>
+            </p></li>
+<li class="listitem"><p>
+              Default Constructible
+            </p></li>
+<li class="listitem"><p>
+              <a href="http://www.boost.org/libs/utility/CopyConstructible.html" target="_top"><span class="bold"><strong>Copy
+              Constructible</strong></span></a>
+            </p></li>
+<li class="listitem"><p>
+              Assignable
+            </p></li>
+</ul></div>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.post_order_desc_iter.members"></a><a class="link" href="post_order_desc_iter.html#tree_node.reference.post_order_desc_iter.members" title="Members">Members</a>
+</h4></div></div></div>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+                  <p>
+                    Name
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Expression
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Description
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Type requirements
+                  </p>
+                </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+                  <p>
+                    Value type
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">typedef</span> <span class="special">...</span> <span class="identifier">value_type</span><span class="special">;</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Defined by the <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> concept.
+                  </p>
+                </td>
+<td>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Reference type
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">typedef</span> <span class="special">...</span> <span class="identifier">reference</span><span class="special">;</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Defined by the Forward Iterator concept.
+                  </p>
+                </td>
+<td>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Pointer type
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">typedef</span> <span class="special">...</span> <span class="identifier">pointer</span><span class="special">;</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Defined by the Forward Iterator concept.
+                  </p>
+                </td>
+<td>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Distance type
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">typedef</span> <span class="special">...</span> <span class="identifier">difference_type</span><span class="special">;</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Defined by the Forward Iterator concept.
+                  </p>
+                </td>
+<td>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Iterator category
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">typedef</span> <span class="special">...</span> <span class="identifier">iterator_category</span><span class="special">;</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Defined by the Forward Iterator concept.
+                  </p>
+                </td>
+<td>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Default constructor
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">post_order_descendant_iterator</span><span class="special">();</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Sets this iterator past-the-end. Required by the Default Constructible concept.
+                  </p>
+                </td>
+<td>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Constructor from node
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">post_order_descendant_iterator</span><span class="special">(</span><span class="identifier">Node</span><span class="special">&);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Defined by the <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> concept.
+                  </p>
+                </td>
+<td>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Conversion constructor
+                  </p>
+                </td>
+<td>
+<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">N</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">I</span><span class="special">></span>
+<span class="identifier">post_order_descendant_iterator</span><span class="special">(</span>
+    <span class="identifier">post_order_descendant_iterator</span><span class="special"><</span><span class="identifier">N</span><span class="special">,</span><span class="identifier">I</span><span class="special">></span> <span class="keyword">const</span><span class="special">&</span>
+<span class="special">);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Constructs this iterator as a copy of the specified one so that
+                    the current node is of type <code class="computeroutput"><span class="identifier">Node</span></code>.
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="literal">std::tr1::is_convertible<N,Node></code>
+                    must evaluate to std::tr1::true_type, and <code class="literal">boost::mpl::equal_to<I,IsReverse></code>
+                    must evaluate to boost::mpl::true_.
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Copy constructor
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">post_order_descendant_iterator</span><span class="special">(</span>
+    <span class="identifier">post_order_descendant_iterator</span> <span class="keyword">const</span><span class="special">&</span>
+<span class="special">);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Defined by the Copy Constructible concept.
+                  </p>
+                </td>
+<td>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Assignment operator
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">post_order_descendant_iterator</span><span class="special">&</span>
+    <span class="keyword">operator</span><span class="special">=(</span><span class="identifier">post_order_descendant_iterator</span> <span class="keyword">const</span><span class="special">&);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Defined by the Assignable concept.
+                  </p>
+                </td>
+<td>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Dereference operator
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">reference</span> <span class="keyword">operator</span><span class="special">*()</span> <span class="keyword">const</span><span class="special">;</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    If the <code class="computeroutput"><span class="identifier">Node</span></code> type
+                    models 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,
+                    returns an object whose <code class="computeroutput"><span class="identifier">first</span></code>
+                    member refers to the key that is associated with the current
+                    node. If the <code class="computeroutput"><span class="identifier">Node</span></code>
+                    type models the <a class="link" href="../concepts/non_assoc_tree_node.html" title="Non-Associative Tree Node"><span class="bold"><strong>Non-Associative Tree Node</strong></span></a> concept,
+                    returns the current node. Required by the Forward Iterator concept.
+                  </p>
+                </td>
+<td>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Indirection operator
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">pointer</span> <span class="keyword">operator</span><span class="special">->()</span> <span class="keyword">const</span><span class="special">;</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    If the <code class="computeroutput"><span class="identifier">Node</span></code> type
+                    models 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,
+                    returns a pointer to the object whose <code class="computeroutput"><span class="identifier">first</span></code>
+                    member refers to the key associated with the current node. If
+                    the <code class="computeroutput"><span class="identifier">Node</span></code> type
+                    models the <a class="link" href="../concepts/non_assoc_tree_node.html" title="Non-Associative Tree Node"><span class="bold"><strong>Non-Associative Tree Node</strong></span></a> concept,
+                    returns a pointer to the current node. Required by the Forward Iterator concept.
+                  </p>
+                </td>
+<td>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Pre-increment operator
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">post_order_descendant_iterator</span><span class="special">&</span> <span class="keyword">operator</span><span class="special">++();</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    If <code class="computeroutput"><span class="identifier">IsReverse</span></code>
+                    evaluates to boost::mpl::true_, points this
+                    iterator to the next node in the reverse pre-order traversal
+                    of the descendants of the root node that was passed into the
+                    constructor; otherwise, points this iterator to the next node
+                    in the post-order traversal of the descendants of the root node
+                    that was passed into the constructor. Returns this iterator.
+                    Required by the Forward Iterator concept.
+                  </p>
+                </td>
+<td>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Post-increment operator
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">post_order_descendant_iterator</span> <span class="keyword">operator</span><span class="special">++(</span><span class="keyword">int</span><span class="special">);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    If <code class="computeroutput"><span class="identifier">IsReverse</span></code>
+                    evaluates to boost::mpl::true_, points this
+                    iterator to the next node in the reverse pre-order traversal
+                    of the descendants of the root node that was passed into the
+                    constructor; otherwise, points this iterator to the next node
+                    in the post-order traversal of the descendants of the root node
+                    that was passed into the constructor. Returns a new iterator
+                    pointing to the (previous) current node. Required by the Forward Iterator concept.
+                  </p>
+                </td>
+<td>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Traversal state conversion operator
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">operator</span> <a class="link" href="traversal_state.html" title="traversal_state">tree_node::traversal_state</a><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Defined by 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>
+<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_desc_iter.non_members"></a><a class="link" href="post_order_desc_iter.html#tree_node.reference.post_order_desc_iter.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>
+                    Definition
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Description
+                  </p>
+                </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+                  <p>
+                    Iterator creation
+                  </p>
+                </td>
+<td>
+<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">Node</span><span class="special">></span>
+    <span class="identifier">post_order_descendant_iterator</span><span class="special"><</span><span class="identifier">Node</span><span class="special">></span>
+        <span class="identifier">make_post_order_descendant_iterator</span><span class="special">(</span><span class="identifier">Node</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>
+                </td>
+<td>
+                  <p>
+                    Constructs and returns a <code class="computeroutput"><span class="identifier">post_order_descendant_iterator</span></code>
+                    that will iterate through the descendants of the specified node
+                    in post-order fashion.
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Reverse iterator creation
+                  </p>
+                </td>
+<td>
+<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">Node</span><span class="special">></span>
+    <span class="identifier">post_order_descendant_iterator</span><span class="special"><</span><span class="identifier">Node</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_reverse_iterator</span><span class="special">(</span><span class="identifier">Node</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>
+                </td>
+<td>
+                  <p>
+                    Constructs and returns a <code class="computeroutput"><span class="identifier">post_order_descendant_iterator</span></code>
+                    that will iterate through the descendants of the specified node
+                    in reverse pre-order fashion.
+                  </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-2013 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="http://www.boost.org/doc/libs/release/doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="in_order_iterator.html"><img src="http://www.boost.org/doc/libs/release/doc/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
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/post_order_iterator.html	2013-07-07 14:52:52 EDT (Sun, 07 Jul 2013)	(r84977)
@@ -0,0 +1,629 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>post_order_iterator<Node,IsReverse></title>
+<link rel="stylesheet" href="http://www.boost.org/doc/libs/release/doc/src/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.77.1">
+<link rel="home" href="../../index.html" title="Chapter 1. tree_node 0.5">
+<link rel="up" href="../reference.html" title="Reference">
+<link rel="prev" href="pre_order_desc_iter.html" title="pre_order_descendant_iterator<Node,IsReverse>">
+<link rel="next" href="post_order_desc_iter.html" title="post_order_descendant_iterator<Node,IsReverse>">
+</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_desc_iter.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="post_order_desc_iter.html"><img src="http://www.boost.org/doc/libs/release/doc/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<Node,IsReverse>"><code class="computeroutput"><span class="identifier">post_order_iterator</span><span class="special"><</span><span class="identifier">Node</span><span class="special">,</span><span class="identifier">IsReverse</span><span class="special">></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>
+<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">Node</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">IsReverse</span> <span class="special">=</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">false_</span><span class="special">></span>
+    <span class="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="identifier">boost</span><span class="special">::</span><span class="identifier">iterator_adaptor</span><span class="special"><</span>
+            <span class="identifier">post_order_iterator</span><span class="special"><</span><span class="identifier">Node</span><span class="special">,</span><span class="identifier">IsReverse</span><span class="special">></span>
+          <span class="special">,</span> <span class="identifier">Node</span><span class="special">*</span>
+          <span class="special">,</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">use_default</span>
+          <span class="special">,</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">forward_traversal_tag</span>
+        <span class="special">></span>
+    <span class="special">{</span>
+        <span class="keyword">struct</span> <span class="identifier">enabler</span>
+        <span class="special">{</span>
+        <span class="special">};</span>
+
+     <span class="keyword">public</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">Node</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">N</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">I</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">N</span><span class="special">,</span><span class="identifier">I</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="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="keyword">typename</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">if_</span><span class="special"><</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">is_convertible</span><span class="special"><</span><span class="identifier">N</span><span class="special">,</span><span class="identifier">Node</span><span class="special">></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">I</span><span class="special">,</span><span class="identifier">IsReverse</span><span class="special">></span>
+                  <span class="special">,</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">false_</span>
+                <span class="special">>::</span><span class="identifier">type</span>
+              <span class="special">,</span> <span class="identifier">enabler</span>
+            <span class="special">>::</span><span class="identifier">type</span> <span class="special">=</span> <span class="identifier">enabler</span><span class="special">()</span>
+        <span class="special">);</span>
+
+        <span class="keyword">operator</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">tree_node</span><span class="special">::</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>
+</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 root node passed to its constructor--and all
+          its descendants--in either post-order or reverse pre-order fashion, e.g.
+          given the following tree representation:
+        </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>
+          By default, this iterator will traverse the tree nodes in the following
+          order:
+        </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>
+          However, if <code class="computeroutput"><span class="identifier">IsReverse</span></code> evaluates
+          to boost::mpl::true_,
+          then this iterator will traverse the tree nodes in the following order:
+        </p>
+<pre class="programlisting"><span class="identifier">A</span> <span class="identifier">B</span> <span class="identifier">G</span> <span class="identifier">F</span> <span class="identifier">C</span> <span class="identifier">E</span> <span class="identifier">D</span>
+</pre>
+</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>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span>boost/tree_node/iterator/post_order.hpp<span class="special">></span>
+</pre>
+<p>
+          To register under Boost.Typeof:
+        </p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span>boost/typeof/boost/tree_node/iterator/post_order.hpp<span class="special">></span>
+</pre>
+</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">Node</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    The type of a tree node.
+                  </p>
+                </td>
+<td>
+                  <p>
+                    It must model the <a class="link" href="../concepts/tree_node.html" title="Tree Node"><span class="bold"><strong>Tree Node</strong></span></a> concept, but it can be
+                    <code class="computeroutput"><span class="keyword">const</span></code>-qualified.
+                  </p>
+                </td>
+<td>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">IsReverse</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Configures the <code class="computeroutput"><span class="identifier">post_order_iterator</span></code>
+                    to traverse tree nodes in reverse pre-order fashion if equivalent
+                    to boost::mpl::true_; otherwise, the
+                    nodes will be traversed in post-order fashion.
+                  </p>
+                </td>
+<td>
+                  <p>
+                    It must model the Boolean Integral Constant concept.
+                  </p>
+                </td>
+<td>
+                  <p>
+                    boost::mpl::false_
+                  </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.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>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem"><p>
+              <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>
+            </p></li>
+<li class="listitem"><p>
+              Default Constructible
+            </p></li>
+<li class="listitem"><p>
+              <a href="http://www.boost.org/libs/utility/CopyConstructible.html" target="_top"><span class="bold"><strong>Copy
+              Constructible</strong></span></a>
+            </p></li>
+<li class="listitem"><p>
+              Assignable
+            </p></li>
+</ul></div>
+</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>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+                  <p>
+                    Name
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Expression
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Description
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Type requirements
+                  </p>
+                </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+                  <p>
+                    Value type
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">typedef</span> <span class="special">...</span> <span class="identifier">value_type</span><span class="special">;</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Defined by the <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> concept.
+                  </p>
+                </td>
+<td>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Reference type
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">typedef</span> <span class="special">...</span> <span class="identifier">reference</span><span class="special">;</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Defined by the Forward Iterator concept.
+                  </p>
+                </td>
+<td>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Pointer type
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">typedef</span> <span class="special">...</span> <span class="identifier">pointer</span><span class="special">;</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Defined by the Forward Iterator concept.
+                  </p>
+                </td>
+<td>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Distance type
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">typedef</span> <span class="special">...</span> <span class="identifier">difference_type</span><span class="special">;</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Defined by the Forward Iterator concept.
+                  </p>
+                </td>
+<td>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Iterator category
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">typedef</span> <span class="special">...</span> <span class="identifier">iterator_category</span><span class="special">;</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Defined by the Forward Iterator concept.
+                  </p>
+                </td>
+<td>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Default constructor
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">post_order_iterator</span><span class="special">();</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Sets this iterator past-the-end. Required by the Default Constructible concept.
+                  </p>
+                </td>
+<td>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Constructor from node
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">explicit</span> <span class="identifier">post_order_iterator</span><span class="special">(</span><span class="identifier">Node</span><span class="special">&);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Defined by the <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> concept.
+                  </p>
+                </td>
+<td>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Conversion constructor
+                  </p>
+                </td>
+<td>
+<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">N</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">I</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">N</span><span class="special">,</span><span class="identifier">I</span><span class="special">></span> <span class="keyword">const</span><span class="special">&);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Constructs this iterator as a copy of the specified one so that
+                    the current node is of type <code class="computeroutput"><span class="identifier">Node</span></code>.
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="literal">std::tr1::is_convertible<N,Node></code>
+                    must evaluate to std::tr1::true_type, and <code class="literal">boost::mpl::equal_to<I,IsReverse></code>
+                    must evaluate to boost::mpl::true_.
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Copy constructor
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><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>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Defined by the Copy Constructible concept.
+                  </p>
+                </td>
+<td>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Assignment operator
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><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>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Defined by the Assignable concept.
+                  </p>
+                </td>
+<td>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Dereference operator
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">reference</span> <span class="keyword">operator</span><span class="special">*()</span> <span class="keyword">const</span><span class="special">;</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Returns the current node. Required by the Forward Iterator concept.
+                  </p>
+                </td>
+<td class="auto-generated"> </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Indirection operator
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">pointer</span> <span class="keyword">operator</span><span class="special">->()</span> <span class="keyword">const</span><span class="special">;</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Returns a pointer to the current node. Required by the Forward Iterator concept.
+                  </p>
+                </td>
+<td>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Pre-increment operator
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">post_order_iterator</span><span class="special">&</span> <span class="keyword">operator</span><span class="special">++();</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    If <code class="computeroutput"><span class="identifier">IsReverse</span></code>
+                    evaluates to boost::mpl::true_, points this
+                    iterator to the next node in the reverse pre-order traversal
+                    of the tree whose root node was passed into the constructor;
+                    otherwise, points this iterator to the next node in the post-order
+                    traversal of the tree whose root node was passed into the constructor.
+                    Returns this iterator. Required by the Forward Iterator concept.
+                  </p>
+                </td>
+<td>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Post-increment operator
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><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>
+</pre>
+                </td>
+<td>
+                  <p>
+                    If <code class="computeroutput"><span class="identifier">IsReverse</span></code>
+                    evaluates to boost::mpl::true_, points this
+                    iterator to the next node in the reverse pre-order traversal
+                    of the tree whose root node was passed into the constructor;
+                    otherwise, points this iterator to the next node in the post-order
+                    traversal of the tree whose root node was passed into the constructor.
+                    Returns a new iterator pointing to the (previous) current node.
+                    Required by the Forward Iterator concept.
+                  </p>
+                </td>
+<td>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Traversal state conversion operator
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">operator</span> <a class="link" href="traversal_state.html" title="traversal_state">tree_node::traversal_state</a><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Defined by 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>
+<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.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>
+                    Definition
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Description
+                  </p>
+                </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+                  <p>
+                    Iterator creation
+                  </p>
+                </td>
+<td>
+<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">Node</span><span class="special">></span>
+    <span class="identifier">post_order_iterator</span><span class="special"><</span><span class="identifier">Node</span><span class="special">></span> <span class="identifier">make_post_order_iterator</span><span class="special">(</span><span class="identifier">Node</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>
+                </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
+                    in post-order fashion.
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Reverse iterator creation
+                  </p>
+                </td>
+<td>
+<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">Node</span><span class="special">></span>
+    <span class="identifier">post_order_iterator</span><span class="special"><</span><span class="identifier">Node</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_reverse_iterator</span><span class="special">(</span><span class="identifier">Node</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>
+                </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
+                    in reverse pre-order fashion.
+                  </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-2013 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_desc_iter.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="post_order_desc_iter.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/pre_order_desc_iter.html
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/pre_order_desc_iter.html	2013-07-07 14:52:52 EDT (Sun, 07 Jul 2013)	(r84977)
@@ -0,0 +1,661 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>pre_order_descendant_iterator<Node,IsReverse></title>
+<link rel="stylesheet" href="http://www.boost.org/doc/libs/release/doc/src/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.77.1">
+<link rel="home" href="../../index.html" title="Chapter 1. tree_node 0.5">
+<link rel="up" href="../reference.html" title="Reference">
+<link rel="prev" href="pre_order_iterator.html" title="pre_order_iterator<Node,IsReverse>">
+<link rel="next" href="post_order_iterator.html" title="post_order_iterator<Node,IsReverse>">
+</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="http://www.boost.org/doc/libs/release/doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="post_order_iterator.html"><img src="http://www.boost.org/doc/libs/release/doc/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_desc_iter"></a><a class="link" href="pre_order_desc_iter.html" title="pre_order_descendant_iterator<Node,IsReverse>"><code class="computeroutput"><span class="identifier">pre_order_descendant_iterator</span><span class="special"><</span><span class="identifier">Node</span><span class="special">,</span><span class="identifier">IsReverse</span><span class="special">></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_desc_iter.synopsis"></a><a class="link" href="pre_order_desc_iter.html#tree_node.reference.pre_order_desc_iter.synopsis" title="Synopsis">Synopsis</a>
+</h4></div></div></div>
+<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">Node</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">IsReverse</span> <span class="special">=</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">false_</span><span class="special">></span>
+    <span class="keyword">class</span> <span class="identifier">pre_order_descendant_iterator</span>
+      <span class="special">:</span> <span class="keyword">public</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">iterator_adaptor</span><span class="special"><</span>
+            <span class="identifier">pre_order_descendant_iterator</span><span class="special"><</span><span class="identifier">Node</span><span class="special">,</span><span class="identifier">IsReverse</span><span class="special">></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">mpl</span><span class="special">::</span><span class="identifier">eval_if</span><span class="special"><</span>
+                <span class="identifier">IsReverse</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">if_</span><span class="special"><</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">is_const</span><span class="special"><</span><span class="identifier">Node</span><span class="special">></span>
+                  <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Node</span><span class="special">::</span><span class="identifier">const_reverse_iterator</span>
+                  <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Node</span><span class="special">::</span><span class="identifier">reverse_iterator</span>
+                <span class="special">></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">if_</span><span class="special"><</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">is_const</span><span class="special"><</span><span class="identifier">Node</span><span class="special">></span>
+                  <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Node</span><span class="special">::</span><span class="identifier">const_iterator</span>
+                  <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Node</span><span class="special">::</span><span class="identifier">iterator</span>
+                <span class="special">></span>
+            <span class="special">>::</span><span class="identifier">type</span>
+          <span class="special">,</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">use_default</span>
+          <span class="special">,</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">forward_traversal_tag</span>
+        <span class="special">></span>
+    <span class="special">{</span>
+        <span class="keyword">struct</span> <span class="identifier">enabler</span>
+        <span class="special">{</span>
+        <span class="special">};</span>
+
+     <span class="keyword">public</span><span class="special">:</span>
+        <span class="identifier">pre_order_descendant_iterator</span><span class="special">();</span>
+
+        <span class="keyword">explicit</span> <span class="identifier">pre_order_descendant_iterator</span><span class="special">(</span><span class="identifier">Node</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">N</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">I</span><span class="special">></span>
+        <span class="identifier">pre_order_descendant_iterator</span><span class="special">(</span>
+            <span class="identifier">pre_order_descendant_iterator</span><span class="special"><</span><span class="identifier">N</span><span class="special">,</span><span class="identifier">I</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="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="keyword">typename</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">if_</span><span class="special"><</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">is_convertible</span><span class="special"><</span><span class="identifier">N</span><span class="special">,</span><span class="identifier">Node</span><span class="special">></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">I</span><span class="special">,</span><span class="identifier">IsReverse</span><span class="special">></span>
+                  <span class="special">,</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">false_</span>
+                <span class="special">>::</span><span class="identifier">type</span>
+              <span class="special">,</span> <span class="identifier">enabler</span>
+            <span class="special">>::</span><span class="identifier">type</span> <span class="special">=</span> <span class="identifier">enabler</span><span class="special">()</span>
+        <span class="special">);</span>
+
+        <span class="keyword">operator</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">tree_node</span><span class="special">::</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>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.pre_order_desc_iter.description"></a><a class="link" href="pre_order_desc_iter.html#tree_node.reference.pre_order_desc_iter.description" title="Description">Description</a>
+</h4></div></div></div>
+<p>
+          This iterator traverses the descendants of the root node passed to its
+          constructor in either pre-order or reverse post-order fashion, e.g. given
+          the following tree representation:
+        </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>
+          By default, this iterator will traverse the tree nodes in the following
+          order:
+        </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>
+          However, if <code class="computeroutput"><span class="identifier">IsReverse</span></code> evaluates
+          to boost::mpl::true_,
+          then this iterator will traverse the tree nodes in the following order:
+        </p>
+<pre class="programlisting"><span class="identifier">G</span> <span class="identifier">F</span> <span class="identifier">B</span> <span class="identifier">E</span> <span class="identifier">D</span> <span class="identifier">C</span>
+</pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.pre_order_desc_iter.definition"></a><a class="link" href="pre_order_desc_iter.html#tree_node.reference.pre_order_desc_iter.definition" title="Where defined">Where
+        defined</a>
+</h4></div></div></div>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span>boost/tree_node/iterator/pre_order_descendant.hpp<span class="special">></span>
+</pre>
+<p>
+          To register under Boost.Typeof:
+        </p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span>boost/typeof/boost/tree_node/iterator/pre_order_descendant.hpp<span class="special">></span>
+</pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.pre_order_desc_iter.tpl_param"></a><a class="link" href="pre_order_desc_iter.html#tree_node.reference.pre_order_desc_iter.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">Node</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    The type of a tree node.
+                  </p>
+                </td>
+<td>
+                  <p>
+                    It must model the <a class="link" href="../concepts/tree_node.html" title="Tree Node"><span class="bold"><strong>Tree Node</strong></span></a> concept, but it can be
+                    <code class="computeroutput"><span class="keyword">const</span></code>-qualified.
+                  </p>
+                </td>
+<td>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">IsReverse</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Configures the <code class="computeroutput"><span class="identifier">pre_order_descendant_iterator</span></code>
+                    to traverse tree nodes in reverse post-order fashion if equivalent
+                    to boost::mpl::true_; otherwise, the
+                    nodes will be traversed in pre-order fashion.
+                  </p>
+                </td>
+<td>
+                  <p>
+                    It must model the Boolean Integral Constant concept.
+                  </p>
+                </td>
+<td>
+                  <p>
+                    boost::mpl::false_
+                  </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_desc_iter.model_of"></a><a class="link" href="pre_order_desc_iter.html#tree_node.reference.pre_order_desc_iter.model_of" title="Model of">Model
+        of</a>
+</h4></div></div></div>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem"><p>
+              <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>
+            </p></li>
+<li class="listitem"><p>
+              Default Constructible
+            </p></li>
+<li class="listitem"><p>
+              <a href="http://www.boost.org/libs/utility/CopyConstructible.html" target="_top"><span class="bold"><strong>Copy
+              Constructible</strong></span></a>
+            </p></li>
+<li class="listitem"><p>
+              Assignable
+            </p></li>
+</ul></div>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.pre_order_desc_iter.members"></a><a class="link" href="pre_order_desc_iter.html#tree_node.reference.pre_order_desc_iter.members" title="Members">Members</a>
+</h4></div></div></div>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+                  <p>
+                    Name
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Expression
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Description
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Type requirements
+                  </p>
+                </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+                  <p>
+                    Value type
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">typedef</span> <span class="special">...</span> <span class="identifier">value_type</span><span class="special">;</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Defined by the <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> concept.
+                  </p>
+                </td>
+<td>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Reference type
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">typedef</span> <span class="special">...</span> <span class="identifier">reference</span><span class="special">;</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Defined by the Forward Iterator concept.
+                  </p>
+                </td>
+<td>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Pointer type
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">typedef</span> <span class="special">...</span> <span class="identifier">pointer</span><span class="special">;</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Defined by the Forward Iterator concept.
+                  </p>
+                </td>
+<td>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Distance type
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">typedef</span> <span class="special">...</span> <span class="identifier">difference_type</span><span class="special">;</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Defined by the Forward Iterator concept.
+                  </p>
+                </td>
+<td>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Iterator category
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">typedef</span> <span class="special">...</span> <span class="identifier">iterator_category</span><span class="special">;</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Defined by the Forward Iterator concept.
+                  </p>
+                </td>
+<td>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Default constructor
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">pre_order_descendant_iterator</span><span class="special">();</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Sets this iterator past-the-end. Required by the Default Constructible concept.
+                  </p>
+                </td>
+<td>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Constructor from node
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">explicit</span> <span class="identifier">pre_order_descendant_iterator</span><span class="special">(</span><span class="identifier">Node</span><span class="special">&);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Defined by the <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> concept.
+                  </p>
+                </td>
+<td>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Conversion constructor
+                  </p>
+                </td>
+<td>
+<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">N</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">I</span><span class="special">></span>
+<span class="identifier">pre_order_descendant_iterator</span><span class="special">(</span>
+    <span class="identifier">pre_order_descendant_iterator</span><span class="special"><</span><span class="identifier">N</span><span class="special">,</span><span class="identifier">I</span><span class="special">></span> <span class="keyword">const</span><span class="special">&</span>
+<span class="special">);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Constructs this iterator as a copy of the specified one so that
+                    the current node is of type <code class="computeroutput"><span class="identifier">Node</span></code>.
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="literal">std::tr1::is_convertible<N,Node></code>
+                    must evaluate to std::tr1::true_type, and <code class="literal">boost::mpl::equal_to<I,IsReverse></code>
+                    must evaluate to boost::mpl::true_.
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Copy constructor
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">pre_order_descendant_iterator</span><span class="special">(</span>
+    <span class="identifier">pre_order_descendant_iterator</span> <span class="keyword">const</span><span class="special">&</span>
+<span class="special">);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Defined by the Copy Constructible concept.
+                  </p>
+                </td>
+<td>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Assignment operator
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">pre_order_descendant_iterator</span><span class="special">&</span>
+    <span class="keyword">operator</span><span class="special">=(</span><span class="identifier">pre_order_descendant_iterator</span> <span class="keyword">const</span><span class="special">&);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Defined by the Assignable concept.
+                  </p>
+                </td>
+<td>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Dereference operator
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">reference</span> <span class="keyword">operator</span><span class="special">*()</span> <span class="keyword">const</span><span class="special">;</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    If the <code class="computeroutput"><span class="identifier">Node</span></code> type
+                    models 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,
+                    returns an object whose <code class="computeroutput"><span class="identifier">first</span></code>
+                    member refers to the key that is associated with the current
+                    node. If the <code class="computeroutput"><span class="identifier">Node</span></code>
+                    type models the <a class="link" href="../concepts/non_assoc_tree_node.html" title="Non-Associative Tree Node"><span class="bold"><strong>Non-Associative Tree Node</strong></span></a> concept,
+                    returns the current node. Required by the Forward Iterator concept.
+                  </p>
+                </td>
+<td>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Indirection operator
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">pointer</span> <span class="keyword">operator</span><span class="special">->()</span> <span class="keyword">const</span><span class="special">;</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    If the <code class="computeroutput"><span class="identifier">Node</span></code> type
+                    models 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,
+                    returns a pointer to the object whose <code class="computeroutput"><span class="identifier">first</span></code>
+                    member refers to the key associated with the current node. If
+                    the <code class="computeroutput"><span class="identifier">Node</span></code> type
+                    models the <a class="link" href="../concepts/non_assoc_tree_node.html" title="Non-Associative Tree Node"><span class="bold"><strong>Non-Associative Tree Node</strong></span></a> concept,
+                    returns a pointer to the current node. Required by the Forward Iterator concept.
+                  </p>
+                </td>
+<td>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Pre-increment operator
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">pre_order_descendant_iterator</span><span class="special">&</span> <span class="keyword">operator</span><span class="special">++();</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    If <code class="computeroutput"><span class="identifier">IsReverse</span></code>
+                    evaluates to boost::mpl::true_, points this
+                    iterator to the next node in the reverse post-order traversal
+                    of the descendants of the root node that was passed into the
+                    constructor; otherwise, points this iterator to the next node
+                    in the pre-order traversal of the descendants of the root node
+                    that was passed into the constructor. Returns this iterator.
+                    Required by the Forward Iterator concept.
+                  </p>
+                </td>
+<td>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Post-increment operator
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">pre_order_descendant_iterator</span> <span class="keyword">operator</span><span class="special">++(</span><span class="keyword">int</span><span class="special">);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    If <code class="computeroutput"><span class="identifier">IsReverse</span></code>
+                    evaluates to boost::mpl::true_, points this
+                    iterator to the next node in the reverse post-order traversal
+                    of the descendants of the root node that was passed into the
+                    constructor; otherwise, points this iterator to the next node
+                    in the pre-order traversal of the descendants of the root node
+                    that was passed into the constructor. Returns a new iterator
+                    pointing to the (previous) current node. Required by the Forward Iterator concept.
+                  </p>
+                </td>
+<td>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Traversal state conversion operator
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">operator</span> <a class="link" href="traversal_state.html" title="traversal_state">tree_node::traversal_state</a><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Defined by 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>
+<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_desc_iter.non_members"></a><a class="link" href="pre_order_desc_iter.html#tree_node.reference.pre_order_desc_iter.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>
+                    Definition
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Description
+                  </p>
+                </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+                  <p>
+                    Iterator creation
+                  </p>
+                </td>
+<td>
+<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">Node</span><span class="special">></span>
+    <span class="identifier">pre_order_descendant_iterator</span><span class="special"><</span><span class="identifier">Node</span><span class="special">></span>
+        <span class="identifier">make_pre_order_descendant_iterator</span><span class="special">(</span><span class="identifier">Node</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>
+                </td>
+<td>
+                  <p>
+                    Constructs and returns a <code class="computeroutput"><span class="identifier">pre_order_descendant_iterator</span></code>
+                    that will iterate through the descendants of the specified node
+                    in pre-order fashion.
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Reverse iterator creation
+                  </p>
+                </td>
+<td>
+<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">Node</span><span class="special">></span>
+    <span class="identifier">pre_order_descendant_iterator</span><span class="special"><</span><span class="identifier">Node</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_reverse_iterator</span><span class="special">(</span><span class="identifier">Node</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>
+                </td>
+<td>
+                  <p>
+                    Constructs and returns a <code class="computeroutput"><span class="identifier">pre_order_descendant_iterator</span></code>
+                    that will iterate through the descendants of the specified node
+                    in reverse post-order fashion.
+                  </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-2013 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="http://www.boost.org/doc/libs/release/doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="post_order_iterator.html"><img src="http://www.boost.org/doc/libs/release/doc/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
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/pre_order_iterator.html	2013-07-07 14:52:52 EDT (Sun, 07 Jul 2013)	(r84977)
@@ -0,0 +1,629 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>pre_order_iterator<Node,IsReverse></title>
+<link rel="stylesheet" href="http://www.boost.org/doc/libs/release/doc/src/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.77.1">
+<link rel="home" href="../../index.html" title="Chapter 1. tree_node 0.5">
+<link rel="up" href="../reference.html" title="Reference">
+<link rel="prev" href="breadth_first_desc_iter.html" title="breadth_first_descendant_iterator<Node,Selector>">
+<link rel="next" href="pre_order_desc_iter.html" title="pre_order_descendant_iterator<Node,IsReverse>">
+</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_desc_iter.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="pre_order_desc_iter.html"><img src="http://www.boost.org/doc/libs/release/doc/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<Node,IsReverse>"><code class="computeroutput"><span class="identifier">pre_order_iterator</span><span class="special"><</span><span class="identifier">Node</span><span class="special">,</span><span class="identifier">IsReverse</span><span class="special">></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>
+<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">Node</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">IsReverse</span> <span class="special">=</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">false_</span><span class="special">></span>
+    <span class="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="identifier">boost</span><span class="special">::</span><span class="identifier">iterator_adaptor</span><span class="special"><</span>
+            <span class="identifier">pre_order_iterator</span><span class="special"><</span><span class="identifier">Node</span><span class="special">,</span><span class="identifier">IsReverse</span><span class="special">></span>
+          <span class="special">,</span> <span class="identifier">Node</span><span class="special">*</span>
+          <span class="special">,</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">use_default</span>
+          <span class="special">,</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">forward_traversal_tag</span>
+        <span class="special">></span>
+    <span class="special">{</span>
+        <span class="keyword">struct</span> <span class="identifier">enabler</span>
+        <span class="special">{</span>
+        <span class="special">};</span>
+
+     <span class="keyword">public</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">Node</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">N</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">I</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">N</span><span class="special">,</span><span class="identifier">I</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="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="keyword">typename</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">if_</span><span class="special"><</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">is_convertible</span><span class="special"><</span><span class="identifier">N</span><span class="special">,</span><span class="identifier">Node</span><span class="special">></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">I</span><span class="special">,</span><span class="identifier">IsReverse</span><span class="special">></span>
+                  <span class="special">,</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">false_</span>
+                <span class="special">>::</span><span class="identifier">type</span>
+              <span class="special">,</span> <span class="identifier">enabler</span>
+            <span class="special">>::</span><span class="identifier">type</span> <span class="special">=</span> <span class="identifier">enabler</span><span class="special">()</span>
+        <span class="special">);</span>
+
+        <span class="keyword">operator</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">tree_node</span><span class="special">::</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>
+</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 root node passed to its constructor--and all
+          its descendants--in either pre-order or reverse post-order fashion, e.g.
+          given the following tree representation:
+        </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>
+          By default, this iterator will traverse the tree nodes in the following
+          order:
+        </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>
+          However, if <code class="computeroutput"><span class="identifier">IsReverse</span></code> evaluates
+          to boost::mpl::true_,
+          then this iterator will traverse the tree nodes in the following order:
+        </p>
+<pre class="programlisting"><span class="identifier">G</span> <span class="identifier">F</span> <span class="identifier">B</span> <span class="identifier">E</span> <span class="identifier">D</span> <span class="identifier">C</span> <span class="identifier">A</span>
+</pre>
+</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>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span>boost/tree_node/iterator/pre_order.hpp<span class="special">></span>
+</pre>
+<p>
+          To register under Boost.Typeof:
+        </p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span>boost/typeof/boost/tree_node/iterator/pre_order.hpp<span class="special">></span>
+</pre>
+</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">Node</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    The type of a tree node.
+                  </p>
+                </td>
+<td>
+                  <p>
+                    It must model the <a class="link" href="../concepts/tree_node.html" title="Tree Node"><span class="bold"><strong>Tree Node</strong></span></a> concept, but it can be
+                    <code class="computeroutput"><span class="keyword">const</span></code>-qualified.
+                  </p>
+                </td>
+<td>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">IsReverse</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Configures the <code class="computeroutput"><span class="identifier">pre_order_iterator</span></code>
+                    to traverse tree nodes in reverse post-order fashion if equivalent
+                    to boost::mpl::true_; otherwise, the
+                    nodes will be traversed in pre-order fashion.
+                  </p>
+                </td>
+<td>
+                  <p>
+                    It must model the Boolean Integral Constant concept.
+                  </p>
+                </td>
+<td>
+                  <p>
+                    boost::mpl::false_
+                  </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.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>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem"><p>
+              <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>
+            </p></li>
+<li class="listitem"><p>
+              Default Constructible
+            </p></li>
+<li class="listitem"><p>
+              <a href="http://www.boost.org/libs/utility/CopyConstructible.html" target="_top"><span class="bold"><strong>Copy
+              Constructible</strong></span></a>
+            </p></li>
+<li class="listitem"><p>
+              Assignable
+            </p></li>
+</ul></div>
+</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>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+                  <p>
+                    Name
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Expression
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Description
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Type requirements
+                  </p>
+                </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+                  <p>
+                    Value type
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">typedef</span> <span class="special">...</span> <span class="identifier">value_type</span><span class="special">;</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Defined by the <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> concept.
+                  </p>
+                </td>
+<td>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Reference type
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">typedef</span> <span class="special">...</span> <span class="identifier">reference</span><span class="special">;</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Defined by the Forward Iterator concept.
+                  </p>
+                </td>
+<td>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Pointer type
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">typedef</span> <span class="special">...</span> <span class="identifier">pointer</span><span class="special">;</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Defined by the Forward Iterator concept.
+                  </p>
+                </td>
+<td>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Distance type
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">typedef</span> <span class="special">...</span> <span class="identifier">difference_type</span><span class="special">;</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Defined by the Forward Iterator concept.
+                  </p>
+                </td>
+<td>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Iterator category
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">typedef</span> <span class="special">...</span> <span class="identifier">iterator_category</span><span class="special">;</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Defined by the Forward Iterator concept.
+                  </p>
+                </td>
+<td>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Default constructor
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">pre_order_iterator</span><span class="special">();</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Sets this iterator past-the-end. Required by the Default Constructible concept.
+                  </p>
+                </td>
+<td>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Constructor from node
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">explicit</span> <span class="identifier">pre_order_iterator</span><span class="special">(</span><span class="identifier">Node</span><span class="special">&);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Defined by the <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> concept.
+                  </p>
+                </td>
+<td>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Conversion constructor
+                  </p>
+                </td>
+<td>
+<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">N</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">I</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">N</span><span class="special">,</span><span class="identifier">I</span><span class="special">></span> <span class="keyword">const</span><span class="special">&);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Constructs this iterator as a copy of the specified one so that
+                    the current node is of type <code class="computeroutput"><span class="identifier">Node</span></code>.
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="literal">std::tr1::is_convertible<N,Node></code>
+                    must evaluate to std::tr1::true_type, and <code class="literal">boost::mpl::equal_to<I,IsReverse></code>
+                    must evaluate to boost::mpl::true_.
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Copy constructor
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><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>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Defined by the Copy Constructible concept.
+                  </p>
+                </td>
+<td>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Assignment operator
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><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>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Defined by the Assignable concept.
+                  </p>
+                </td>
+<td>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Dereference operator
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">reference</span> <span class="keyword">operator</span><span class="special">*()</span> <span class="keyword">const</span><span class="special">;</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Returns the current node. Required by the Forward Iterator concept.
+                  </p>
+                </td>
+<td class="auto-generated"> </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Indirection operator
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">pointer</span> <span class="keyword">operator</span><span class="special">->()</span> <span class="keyword">const</span><span class="special">;</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Returns a pointer to the current node. Required by the Forward Iterator concept.
+                  </p>
+                </td>
+<td>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Pre-increment operator
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">pre_order_iterator</span><span class="special">&</span> <span class="keyword">operator</span><span class="special">++();</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    If <code class="computeroutput"><span class="identifier">IsReverse</span></code>
+                    evaluates to boost::mpl::true_, points this
+                    iterator to the next node in the reverse post-order traversal
+                    of the tree whose root node was passed into the constructor;
+                    otherwise, points this iterator to the next node in the pre-order
+                    traversal of the tree whose root node was passed into the constructor.
+                    Returns this iterator. Required by the Forward Iterator concept.
+                  </p>
+                </td>
+<td>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Post-increment operator
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><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>
+</pre>
+                </td>
+<td>
+                  <p>
+                    If <code class="computeroutput"><span class="identifier">IsReverse</span></code>
+                    evaluates to boost::mpl::true_, points this
+                    iterator to the next node in the reverse post-order traversal
+                    of the tree whose root node was passed into the constructor;
+                    otherwise, points this iterator to the next node in the pre-order
+                    traversal of the tree whose root node was passed into the constructor.
+                    Returns a new iterator pointing to the (previous) current node.
+                    Required by the Forward Iterator concept.
+                  </p>
+                </td>
+<td>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Traversal state conversion operator
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">operator</span> <a class="link" href="traversal_state.html" title="traversal_state">tree_node::traversal_state</a><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Defined by 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>
+<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.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>
+                    Definition
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Description
+                  </p>
+                </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+                  <p>
+                    Iterator creation
+                  </p>
+                </td>
+<td>
+<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">Node</span><span class="special">></span>
+    <span class="identifier">pre_order_iterator</span><span class="special"><</span><span class="identifier">Node</span><span class="special">></span> <span class="identifier">make_pre_order_iterator</span><span class="special">(</span><span class="identifier">Node</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>
+                </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
+                    in pre-order fashion.
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Reverse iterator creation
+                  </p>
+                </td>
+<td>
+<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">Node</span><span class="special">></span>
+    <span class="identifier">pre_order_iterator</span><span class="special"><</span><span class="identifier">Node</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_reverse_iterator</span><span class="special">(</span><span class="identifier">Node</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>
+                </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
+                    in reverse post-order fashion.
+                  </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-2013 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_desc_iter.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="pre_order_desc_iter.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/red_black_balancer.html
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/red_black_balancer.html	2013-07-07 14:52:52 EDT (Sun, 07 Jul 2013)	(r84977)
@@ -0,0 +1,89 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>red_black_balancer</title>
+<link rel="stylesheet" href="http://www.boost.org/doc/libs/release/doc/src/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.77.1">
+<link rel="home" href="../../index.html" title="Chapter 1. tree_node 0.5">
+<link rel="up" href="../reference.html" title="Reference">
+<link rel="prev" href="null_balancer.html" title="null_balancer">
+<link rel="next" href="avl_balancer.html" title="adelson_velskii_landis_balancer">
+</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="null_balancer.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="avl_balancer.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="tree_node.reference.red_black_balancer"></a><a class="link" href="red_black_balancer.html" title="red_black_balancer"><code class="computeroutput"><span class="identifier">red_black_balancer</span></code></a>
+</h3></div></div></div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.red_black_balancer.synopsis"></a><a class="link" href="red_black_balancer.html#tree_node.reference.red_black_balancer.synopsis" title="Synopsis">Synopsis</a>
+</h4></div></div></div>
+<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">struct</span> <span class="identifier">red_black_balancer</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">static</span> <span class="identifier">NodePointer</span> <span class="identifier">post_insert</span><span class="special">(</span><span class="identifier">NodePointer</span> <span class="identifier">node_ptr</span><span class="special">);</span>
+
+        <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">Node</span><span class="special">></span>
+        <span class="keyword">static</span> <span class="keyword">bool</span> <span class="identifier">choose_predecessor</span><span class="special">(</span><span class="identifier">Node</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">Node</span><span class="special">></span>
+        <span class="keyword">static</span> <span class="keyword">bool</span> <span class="identifier">pre_erase</span><span class="special">(</span><span class="identifier">Node</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">static</span> <span class="identifier">NodePointer</span> <span class="identifier">post_erase_left</span><span class="special">(</span><span class="identifier">NodePointer</span> <span class="identifier">node_ptr</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">static</span> <span class="identifier">NodePointer</span> <span class="identifier">post_erase_right</span><span class="special">(</span><span class="identifier">NodePointer</span> <span class="identifier">node_ptr</span><span class="special">);</span>
+
+    <span class="special">};</span>
+
+    <span class="keyword">namespace</span> <span class="identifier">balancer</span> <span class="special">{</span>
+
+        <span class="keyword">typedef</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">red_black_balancer</span> <span class="identifier">red_black</span><span class="special">;</span>
+    <span class="special">}</span>  <span class="comment">// namespace balancer</span>
+<span class="special">}}</span>  <span class="comment">// namespace boost::tree_node</span>
+</pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.red_black_balancer.description"></a><a class="link" href="red_black_balancer.html#tree_node.reference.red_black_balancer.description" title="Description">Description</a>
+</h4></div></div></div>
+<p>
+          TODO.
+        </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.red_black_balancer.definition"></a><a class="link" href="red_black_balancer.html#tree_node.reference.red_black_balancer.definition" title="Where defined">Where
+        defined</a>
+</h4></div></div></div>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span>boost/tree_node/balancer/red_black.hpp<span class="special">></span>
+</pre>
+<p>
+          To register under Boost.Typeof:
+        </p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span>boost/typeof/boost/tree_node/balancer/red_black.hpp<span class="special">></span>
+</pre>
+</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-2013 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="null_balancer.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="avl_balancer.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/red_black_flag_key.html
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/red_black_flag_key.html	2013-07-07 14:52:52 EDT (Sun, 07 Jul 2013)	(r84977)
@@ -0,0 +1,74 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>red_flag_key and black_flag_key</title>
+<link rel="stylesheet" href="http://www.boost.org/doc/libs/release/doc/src/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.77.1">
+<link rel="home" href="../../index.html" title="Chapter 1. tree_node 0.5">
+<link rel="up" href="../reference.html" title="Reference">
+<link rel="prev" href="position_key.html" title="position_key">
+<link rel="next" href="advance_binary.html" title="advance_binary()">
+</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="position_key.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="advance_binary.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="tree_node.reference.red_black_flag_key"></a><a class="link" href="red_black_flag_key.html" title="red_flag_key and black_flag_key"><code class="computeroutput"><span class="identifier">red_flag_key</span></code> and <code class="computeroutput"><span class="identifier">black_flag_key</span></code></a>
+</h3></div></div></div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.red_black_flag_key.synopsis"></a><a class="link" href="red_black_flag_key.html#tree_node.reference.red_black_flag_key.synopsis" title="Synopsis">Synopsis</a>
+</h4></div></div></div>
+<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">struct</span> <span class="identifier">red_flag_key</span>
+    <span class="special">{</span>
+    <span class="special">};</span>
+
+    <span class="keyword">struct</span> <span class="identifier">black_flag_key</span>
+    <span class="special">{</span>
+    <span class="special">};</span>
+<span class="special">}}</span>  <span class="comment">// namespace boost::tree_node</span>
+</pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.red_black_flag_key.description"></a><a class="link" href="red_black_flag_key.html#tree_node.reference.red_black_flag_key.description" title="Description">Description</a>
+</h4></div></div></div>
+<p>
+          Use these types to query the red-or-black flag stored in <a class="link" href="../concepts/tree_node.html" title="Tree Node"><span class="bold"><strong>Tree Node</strong></span></a> objects of types ultimately inheriting
+          from <a class="link" href="with_rb_flag_base.html" title="with_red_black_flag_base<Derived,BaseGenerator,T1,T2>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">with_red_black_flag_base</span></code></a>.
+        </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.red_black_flag_key.definition"></a><a class="link" href="red_black_flag_key.html#tree_node.reference.red_black_flag_key.definition" title="Where defined">Where
+        defined</a>
+</h4></div></div></div>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span>boost/tree_node/key/red_black_flag.hpp<span class="special">></span>
+</pre>
+<p>
+          To register under Boost.Typeof:
+        </p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span>boost/typeof/boost/tree_node/key/red_black_flag.hpp<span class="special">></span>
+</pre>
+</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-2013 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="position_key.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="advance_binary.html"><img src="http://www.boost.org/doc/libs/release/doc/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
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/traversal_state.html	2013-07-07 14:52:52 EDT (Sun, 07 Jul 2013)	(r84977)
@@ -0,0 +1,83 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>traversal_state</title>
+<link rel="stylesheet" href="http://www.boost.org/doc/libs/release/doc/src/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.77.1">
+<link rel="home" href="../../index.html" title="Chapter 1. tree_node 0.5">
+<link rel="up" href="../reference.html" title="Reference">
+<link rel="prev" href="compare_selector.html" title="compare_selector<Key>">
+<link rel="next" href="data_key.html" title="data_key">
+</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="compare_selector.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="data_key.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/next.png" alt="Next"></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>
+<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="identifier">in_order_traversal</span>
+    <span class="special">};</span>
+<span class="special">}}</span>  <span class="comment">// namespace boost::tree_node</span>
+</pre>
+</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<Node,IsReverse>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><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>
+          and <code class="computeroutput"><span class="identifier">in_order_traversal</span></code>
+          values are 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>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span>boost/tree_node/traversal_state.hpp<span class="special">></span>
+</pre>
+<p>
+          To register under Boost.Typeof:
+        </p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span>boost/typeof/boost/tree_node/traversal_state.hpp<span class="special">></span>
+</pre>
+</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-2013 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="compare_selector.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="data_key.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/tree_node_base.html
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/tree_node_base.html	2013-07-07 14:52:52 EDT (Sun, 07 Jul 2013)	(r84977)
@@ -0,0 +1,924 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>tree_node_base<Derived></title>
+<link rel="stylesheet" href="http://www.boost.org/doc/libs/release/doc/src/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.77.1">
+<link rel="home" href="../../index.html" title="Chapter 1. tree_node 0.5">
+<link rel="up" href="../reference.html" title="Reference">
+<link rel="prev" href="with_rb_flag_base_gen.html" title="with_red_black_flag_base_gen<BaseGenerator>">
+<link rel="next" href="breadth_first_iterator.html" title="breadth_first_iterator<Node,Selector>">
+</head>
+<body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
+<table cellpadding="2" width="100%"><tr><td valign="top"><img alt="C++ Boost" width="277" height="86" src="../../../../../../boost.png"></td></tr></table>
+<hr>
+<div class="spirit-nav">
+<a accesskey="p" href="with_rb_flag_base_gen.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="breadth_first_iterator.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="tree_node.reference.tree_node_base"></a><a class="link" href="tree_node_base.html" title="tree_node_base<Derived>"><code class="computeroutput"><span class="identifier">tree_node_base</span><span class="special"><</span><span class="identifier">Derived</span><span class="special">></span></code></a>
+</h3></div></div></div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.tree_node_base.description"></a><a class="link" href="tree_node_base.html#tree_node.reference.tree_node_base.description" title="Description">Description</a>
+</h4></div></div></div>
+<p>
+          All models of the <a class="link" href="../concepts/base_tree_node.html" title="Base Tree Node"><span class="bold"><strong>Base Tree Node</strong></span></a> concept that this library
+          provides either inherit from this type or declare it as a <code class="computeroutput"><span class="keyword">friend</span> <span class="keyword">struct</span></code>
+          if they override any of its implementation methods.
+        </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.tree_node_base.definition"></a><a class="link" href="tree_node_base.html#tree_node.reference.tree_node_base.definition" title="Where defined">Where
+        defined</a>
+</h4></div></div></div>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span>boost/tree_node/base.hpp<span class="special">></span>
+</pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.tree_node_base.tpl_param"></a><a class="link" href="tree_node_base.html#tree_node.reference.tree_node_base.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">Derived</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    The most descendant type that will inherit from this one.
+                  </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.tree_node_base.public_bases"></a><a class="link" href="tree_node_base.html#tree_node.reference.tree_node_base.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.tree_node_base.members"></a><a class="link" href="tree_node_base.html#tree_node.reference.tree_node_base.members" title="Members">Members</a>
+</h4></div></div></div>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+                  <p>
+                    Name
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Definition
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Scope
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Description
+                  </p>
+                </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+                  <p>
+                    Pointer type
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">typedef</span> <span class="identifier">Derived</span><span class="special">*</span> <span class="identifier">pointer</span><span class="special">;</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">public</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>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">typedef</span> <span class="identifier">Derived</span> <span class="keyword">const</span><span class="special">*</span> <span class="identifier">const_pointer</span><span class="special">;</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">public</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>
+                    Derived access
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">const_pointer</span> <span class="identifier">get_derived</span><span class="special">()</span> <span class="keyword">const</span><span class="special">;</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">public</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Returns <code class="computeroutput"><span class="keyword">this</span></code> as
+                    the derived type.
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Derived access
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">pointer</span> <span class="identifier">get_derived</span><span class="special">();</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">public</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Returns <code class="computeroutput"><span class="keyword">this</span></code> as
+                    the derived type.
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Metadata cloning implementation
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">void</span> <span class="identifier">clone_metadata_impl</span><span class="special">(</span><span class="identifier">Derived</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">copy</span><span class="special">);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">protected</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Subclass types should override this method to store type-specific
+                    data provided by copy assignment as necessary, to be functionally
+                    identical to the copy constructor's initializer list. Does nothing
+                    by default.
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Metadata cloning
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">void</span> <span class="identifier">clone_metadata</span><span class="special">(</span><span class="identifier">Derived</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">copy</span><span class="special">);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">protected</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Subclass types that store values associated with <a class="link" href="data_key.html" title="data_key"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">data_key</span></code></a> should invoke
+                    this method on copy assignment. Calls the corresponding implementation
+                    method.
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Metadata movement implementation
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">void</span> <span class="identifier">move_metadata_impl</span><span class="special">(</span><span class="identifier">Derived</span><span class="special">&&</span> <span class="identifier">source</span><span class="special">);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">protected</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Subclass types should override this method to store type-specific
+                    data provided by move assignment as necessary, to be functionally
+                    identical to the move constructor's initializer list. Does nothing
+                    by default.
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Metadata movement
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">void</span> <span class="identifier">move_metadata</span><span class="special">(</span><span class="identifier">Derived</span><span class="special">&&</span> <span class="identifier">source</span><span class="special">);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">protected</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Subclass types that store values associated with <a class="link" href="data_key.html" title="data_key"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">data_key</span></code></a> should invoke
+                    this method on move assignment. Calls the corresponding implementation
+                    method.
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Emplacement construction notification implementation
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">void</span> <span class="identifier">on_post_emplacement_construct</span><span class="special">();</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">protected</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Subclass types should override this method to process type-specific
+                    data after emplacement construction as necessary. Does nothing
+                    by default.
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Copy or move notification implementation
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">void</span> <span class="identifier">on_post_copy_or_move_impl</span><span class="special">();</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">protected</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Subclass types should override this method to process type-specific
+                    data invalidated during cloning/movement traversal. Does nothing
+                    by default.
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Copy or move notification
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">void</span> <span class="identifier">on_post_copy_or_move</span><span class="special">();</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">protected</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Subclass types should invoke this method on descendant nodes
+                    in post order during cloning/movement traversal. Calls the corresponding
+                    implementation method.
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Data modified notification implementation
+                  </p>
+                </td>
+<td>
+<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">Key</span><span class="special">></span>
+<span class="keyword">void</span> <span class="identifier">on_post_modify_value_impl</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>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">protected</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Subclass types should override this method if they keep track
+                    of modifications to the value that the invoking node associates
+                    with the specified key. Does nothing by default.
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Data modified notification
+                  </p>
+                </td>
+<td>
+<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">Key</span><span class="special">></span>
+<span class="keyword">void</span> <span class="identifier">on_post_modify_value</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>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">protected</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Subclass types should invoke this method after modifying the
+                    value that the invoking node associates with the specified key.
+                    Calls the corresponding implementation method.
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Data propagated notification implementation
+                  </p>
+                </td>
+<td>
+<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">Key</span><span class="special">></span>
+<span class="keyword">void</span> <span class="identifier">on_post_propagate_value_impl</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>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">protected</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Subclass types should override this method if they keep track
+                    of modifications to values that each node in the chain of ancestors
+                    associates with the specified key. Does nothing by default.
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Data propagated notification
+                  </p>
+                </td>
+<td>
+<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">Key</span><span class="special">></span>
+<span class="keyword">void</span> <span class="identifier">on_post_propagate_value</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>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">protected</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Subclass types should invoke this method after propagating the
+                    value that the invoking node associates with the specified key
+                    up the chain of ancestors. Calls the corresponding implementation
+                    method.
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Data propagated once notification implementation
+                  </p>
+                </td>
+<td>
+<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">Key</span><span class="special">></span>
+<span class="keyword">void</span> <span class="identifier">on_post_propagate_value_once_impl</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>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">protected</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Subclass types should override this method if they keep track
+                    of modifications to the values that the invoking node and its
+                    parent associate with the specified key. Does nothing by default.
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Data propagated once notification
+                  </p>
+                </td>
+<td>
+<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">Key</span><span class="special">></span>
+<span class="keyword">void</span> <span class="identifier">on_post_propagate_value_once</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>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">protected</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Subclass types should invoke this method after modifying the
+                    values that the invoking node and its parent associate with the
+                    specified key. Calls the corresponding implementation method.
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Insertion notification implementation
+                  </p>
+                </td>
+<td>
+<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">Iterator</span><span class="special">></span>
+<span class="keyword">void</span> <span class="identifier">on_post_inserted_impl</span><span class="special">(</span><span class="identifier">Iterator</span> <span class="identifier">position</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">true_</span><span class="special">);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">protected</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Subclass types should override this method to validate any type-specific
+                    data affected by the insertion of the invoking node, pointed
+                    to by the specified iterator. Invoked if iterators pointing to
+                    siblings remain valid. Does nothing by default.
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Insertion notification implementation
+                  </p>
+                </td>
+<td>
+<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">Iterator</span><span class="special">></span>
+<span class="keyword">void</span> <span class="identifier">on_post_inserted_impl</span><span class="special">(</span><span class="identifier">Iterator</span> <span class="identifier">position</span><span class="special">,</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">false_</span><span class="special">);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">protected</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Subclass types should override this method to validate any type-specific
+                    data affected by the insertion of the invoking node, pointed
+                    to by the specified iterator. Invoked if iterators pointing to
+                    siblings become invalid as well. Does nothing by default.
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Insertion notification
+                  </p>
+                </td>
+<td>
+<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">Iterator</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">BooleanIntegralConstant</span><span class="special">></span>
+<span class="keyword">void</span>
+    <span class="identifier">on_post_inserted</span><span class="special">(</span>
+        <span class="identifier">Iterator</span> <span class="identifier">position</span>
+      <span class="special">,</span> <span class="identifier">BooleanIntegralConstant</span> <span class="identifier">does_not_invalidate_child_positions</span>
+    <span class="special">);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">protected</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Subclass types should invoke this method after the parent node
+                    stores the invoking node. Calls the corresponding implementation
+                    method.
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Range insertion notification implementation
+                  </p>
+                </td>
+<td>
+<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">Iterator</span><span class="special">></span>
+<span class="keyword">void</span>
+    <span class="identifier">on_post_insert_impl</span><span class="special">(</span>
+        <span class="identifier">Iterator</span> <span class="identifier">itr</span>
+      <span class="special">,</span> <span class="identifier">Iterator</span> <span class="identifier">itr_end</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">true_</span>
+    <span class="special">);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">protected</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Subclass types should override this method to validate any type-specific
+                    data affected by the insertion of the children in the specified
+                    range. Invoked if iterators pointing to existing children remain
+                    valid. Does nothing by default.
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Range insertion notification implementation
+                  </p>
+                </td>
+<td>
+<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">Iterator</span><span class="special">></span>
+<span class="keyword">void</span>
+    <span class="identifier">on_post_insert_impl</span><span class="special">(</span>
+        <span class="identifier">Iterator</span> <span class="identifier">itr</span>
+      <span class="special">,</span> <span class="identifier">Iterator</span> <span class="identifier">itr_end</span>
+      <span class="special">,</span> <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">mpl</span><span class="special">::</span><span class="identifier">false_</span>
+    <span class="special">);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">protected</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Subclass types should override this method to validate any type-specific
+                    data affected by the insertion of the children in the specified
+                    range. Invoked if iterators pointing to existing children become
+                    invalid as well. Does nothing by default.
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Range insertion notification
+                  </p>
+                </td>
+<td>
+<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">Iterator</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">BooleanIntegralConstant</span><span class="special">></span>
+<span class="keyword">void</span>
+    <span class="identifier">on_post_insert</span><span class="special">(</span>
+        <span class="identifier">Iterator</span> <span class="identifier">itr</span>
+      <span class="special">,</span> <span class="identifier">Iterator</span> <span class="identifier">itr_end</span>
+      <span class="special">,</span> <span class="identifier">BooleanIntegralConstant</span> <span class="identifier">does_not_invalidate_child_positions</span>
+    <span class="special">);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">protected</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Subclass types should invoke this method after storing the child
+                    nodes in the specified range. Calls the corresponding implementation
+                    method.
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Erasure notification implementation
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">void</span> <span class="identifier">on_post_erase_impl</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>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">protected</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Subclass types should override this method to validate any type-specific
+                    data affected by the removal of one or more of the tree node's
+                    children. Invoked if iterators pointing to siblings remain valid.
+                    Does nothing by default.
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Erasure notification implementation
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">void</span> <span class="identifier">on_post_erase_impl</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>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">protected</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Subclass types should override this method to validate any type-specific
+                    data affected by the removal of one or more of the tree node's
+                    children. Invoked if iterators pointing to siblings become invalid
+                    as well. Does nothing by default.
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Erasure notification
+                  </p>
+                </td>
+<td>
+<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">BooleanIntegralConstant</span><span class="special">></span>
+<span class="keyword">void</span>
+    <span class="identifier">on_post_erase</span><span class="special">(</span>
+        <span class="identifier">BooleanIntegralConstant</span> <span class="identifier">does_not_invalidate_child_positions</span>
+    <span class="special">);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">protected</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Subclass types should invoke this method after one or more of
+                    the tree node's children are removed. Calls the corresponding
+                    implementation method.
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Clear notification implementation
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">void</span> <span class="identifier">on_post_clear_impl</span><span class="special">();</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">protected</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Subclass types should override this method to validate any type-specific
+                    data affected by the removal of all the tree node's children.
+                    Does nothing by default.
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Clear notification
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">void</span> <span class="identifier">on_post_clear</span><span class="special">();</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">protected</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Subclass types should invoke this method after all of the tree
+                    node's children are removed. Calls the corresponding implementation
+                    method.
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Left rotation notification implementation
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">void</span> <span class="identifier">on_post_rotate_left_impl</span><span class="special">();</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">protected</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Subclass types should override this method to validate any type-specific
+                    data affected by a left rotation on the tree node. Does nothing
+                    by default.
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Left rotation notification
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">void</span> <span class="identifier">on_post_rotate_left</span><span class="special">();</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">protected</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Subclass types should invoke this method after the tree node
+                    is rotated left. Calls the corresponding implementation method.
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Right rotation notification implementation
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">void</span> <span class="identifier">on_post_rotate_right_impl</span><span class="special">();</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">protected</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Subclass types should override this method to validate any type-specific
+                    data affected by a right rotation on the tree node. Does nothing
+                    by default.
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Right rotation notification
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">void</span> <span class="identifier">on_post_rotate_right</span><span class="special">();</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">protected</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Subclass types should invoke this method after the tree node
+                    is rotated right. Calls the corresponding implementation method.
+                  </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-2013 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="with_rb_flag_base_gen.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="breadth_first_iterator.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/value_at_key.html
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/value_at_key.html	2013-07-07 14:52:52 EDT (Sun, 07 Jul 2013)	(r84977)
@@ -0,0 +1,95 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>result_of::value_at_key<Node,Key></title>
+<link rel="stylesheet" href="http://www.boost.org/doc/libs/release/doc/src/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.77.1">
+<link rel="home" href="../../index.html" title="Chapter 1. tree_node 0.5">
+<link rel="up" href="../reference.html" title="Reference">
+<link rel="prev" href="at_key.html" title="at_key<Key>">
+<link rel="next" href="copyable_and_movable.html" title="BOOST_TREE_NODE_COPYABLE_AND_MOVABLE">
+</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="at_key.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="copyable_and_movable.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="tree_node.reference.value_at_key"></a><a class="link" href="value_at_key.html" title="result_of::value_at_key<Node,Key>"><code class="computeroutput"><span class="identifier">result_of</span><span class="special">::</span><span class="identifier">value_at_key</span><span class="special"><</span><span class="identifier">Node</span><span class="special">,</span><span class="identifier">Key</span><span class="special">></span></code></a>
+</h3></div></div></div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.value_at_key.synopsis"></a><a class="link" href="value_at_key.html#tree_node.reference.value_at_key.synopsis" title="Synopsis">Synopsis</a>
+</h4></div></div></div>
+<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">namespace</span> <span class="identifier">result_of</span> <span class="special">{</span>
+
+    <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">Node</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Key</span><span class="special">></span>
+    <span class="keyword">class</span> <span class="identifier">value_at_key</span>
+    <span class="special">{</span>
+        <span class="keyword">typedef</span> <span class="keyword">typename</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">remove_const</span><span class="special"><</span><span class="identifier">Node</span><span class="special">>::</span><span class="identifier">type</span><span class="special">::</span><span class="identifier">super_t</span>
+                <span class="identifier">_base</span><span class="special">;</span>
+
+     <span class="keyword">public</span><span class="special">:</span>
+        <span class="keyword">typedef</span> <span class="identifier">BOOST_TYPEOF_TPL</span><span class="special">(</span>
+                    <span class="identifier">get</span><span class="special">(</span>
+                        <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">get_reference</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">mpl</span><span class="special">::</span><span class="identifier">if_</span><span class="special"><</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">is_const</span><span class="special"><</span><span class="identifier">Node</span><span class="special">></span>
+                              <span class="special">,</span> <span class="identifier">_base</span> <span class="keyword">const</span>
+                              <span class="special">,</span> <span class="identifier">_base</span>
+                            <span class="special">>::</span><span class="identifier">type</span>
+                        <span class="special">>()</span>
+                      <span class="special">,</span> <span class="identifier">Key</span><span class="special">()</span>
+                    <span class="special">)</span>
+                <span class="special">)</span>
+                <span class="identifier">type</span><span class="special">;</span>
+
+    <span class="special">};</span>
+<span class="special">}}}</span>  <span class="comment">// namespace boost::tree_node::result_of</span>
+</pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.value_at_key.description"></a><a class="link" href="value_at_key.html#tree_node.reference.value_at_key.description" title="Description">Description</a>
+</h4></div></div></div>
+<p>
+          Let <code class="computeroutput"><span class="identifier">Node</span></code> be a (possibly
+          <code class="computeroutput"><span class="keyword">const</span></code>-qualified) <a class="link" href="../concepts/tree_node.html" title="Tree Node"><span class="bold"><strong>Tree Node</strong></span></a> model.
+        </p>
+<p>
+          Let <code class="computeroutput"><span class="identifier">Key</span></code> be a type for which
+          <code class="literal"><a class="link" href="has_key.html#tree_node.reference.has_key.result_of" title="Return Type Metafunction Synopsis">tree_node::result_of::has_key</a><Node,Key></code>
+          evaluates to boost::mpl::true_.
+        </p>
+<pre class="programlisting"><span class="keyword">typedef</span> <span class="identifier">result_of</span><span class="special">::</span><span class="identifier">value_at_key</span><span class="special"><</span><span class="identifier">Node</span><span class="special">,</span><span class="identifier">Key</span><span class="special">>::</span><span class="identifier">type</span> <span class="identifier">r</span><span class="special">;</span>
+</pre>
+<p>
+          <span class="bold"><strong>Return type:</strong></span> The actual element type associated
+          with key type <code class="computeroutput"><span class="identifier">Key</span></code> in <code class="computeroutput"><span class="identifier">Node</span></code>.
+        </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.value_at_key.definition"></a><a class="link" href="value_at_key.html#tree_node.reference.value_at_key.definition" title="Where defined">Where
+        defined</a>
+</h4></div></div></div>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span>boost/tree_node/intrinsic/value_at_key.hpp<span class="special">></span>
+</pre>
+</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-2013 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="at_key.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="copyable_and_movable.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/with_accumulation.html
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/with_accumulation.html	2013-07-07 14:52:52 EDT (Sun, 07 Jul 2013)	(r84977)
@@ -0,0 +1,1310 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>with_accumulation<BaseGenerator,T1,T2,AccumulationKey></title>
+<link rel="stylesheet" href="http://www.boost.org/doc/libs/release/doc/src/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.77.1">
+<link rel="home" href="../../index.html" title="Chapter 1. tree_node 0.5">
+<link rel="up" href="../reference.html" title="Reference">
+<link rel="prev" href="assoc_node_base_gen.html" title="associative_node_base_gen<Selector>">
+<link rel="next" href="with_accumulation_gen.html" title="with_accumulation_gen<BaseGenerator>">
+</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="assoc_node_base_gen.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="with_accumulation_gen.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="tree_node.reference.with_accumulation"></a><a class="link" href="with_accumulation.html" title="with_accumulation<BaseGenerator,T1,T2,AccumulationKey>"><code class="computeroutput"><span class="identifier">with_accumulation</span><span class="special"><</span><span class="identifier">BaseGenerator</span><span class="special">,</span><span class="identifier">T1</span><span class="special">,</span><span class="identifier">T2</span><span class="special">,</span><span class="identifier">AccumulationKey</span><span class="special">></span></code> </a>
+</h3></div></div></div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.with_accumulation.description"></a><a class="link" href="with_accumulation.html#tree_node.reference.with_accumulation.description" title="Description">Description</a>
+</h4></div></div></div>
+<p>
+          In addition to the other operations it inherits from the return type of
+          <code class="computeroutput"><span class="identifier">BaseGenerator</span></code>, this <a class="link" href="../concepts/tree_node.html" title="Tree Node"><span class="bold"><strong>Tree Node</strong></span></a>
+          adaptor performs statistical computations on user data when the node's
+          structure and/or contents are modified, then stores the result.
+        </p>
+<div class="important"><table border="0" summary="Important">
+<tr>
+<td rowspan="2" align="center" valign="top" width="25"><img alt="[Important]" src="http://www.boost.org/doc/libs/release/doc/src/images/important.png"></td>
+<th align="left">Important</th>
+</tr>
+<tr><td align="left" valign="top"><p>
+            Optional Boost.Accumulators
+            parameters are currently unsupported. This may change once this data
+            structure can detect the availability of Boost.Parameter keywords used by Boost.Accumulators
+            features.
+          </p></td></tr>
+</table></div>
+<div class="important"><table border="0" summary="Important">
+<tr>
+<td rowspan="2" align="center" valign="top" width="25"><img alt="[Important]" src="http://www.boost.org/doc/libs/release/doc/src/images/important.png"></td>
+<th align="left">Important</th>
+</tr>
+<tr><td align="left" valign="top"><p>
+            Weighted samples are currently unsupported.
+          </p></td></tr>
+</table></div>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.with_accumulation.definition"></a><a class="link" href="with_accumulation.html#tree_node.reference.with_accumulation.definition" title="Where defined">Where
+        defined</a>
+</h4></div></div></div>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span>boost/tree_node/with_accumulation.hpp<span class="special">></span>
+</pre>
+<p>
+          Forward-declared:
+        </p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span>boost/tree_node/with_accumulation_fwd.hpp<span class="special">></span>
+</pre>
+<p>
+          To register under Boost.Typeof:
+        </p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span>boost/typeof/boost/tree_node/with_accumulation.hpp<span class="special">></span>
+</pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.with_accumulation.tpl_param"></a><a class="link" href="with_accumulation.html#tree_node.reference.with_accumulation.tpl_param" title="Template Parameters">Template
+        Parameters</a>
+</h4></div></div></div>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+                  <p>
+                    Parameter
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Description
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Default
+                  </p>
+                </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">BaseGenerator</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    The <a class="link" href="../concepts/base_type_generator.html" title="Base Type Generator"><span class="bold"><strong>Base Type Generator</strong></span></a> model from
+                    whose return type <code class="computeroutput"><span class="identifier">with_accumulation</span></code>
+                    will ultimately inherit.
+                  </p>
+                </td>
+<td>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">T1</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    The key type if <code class="computeroutput"><span class="identifier">T2</span></code>
+                    is specified; the user data type otherwise.
+                  </p>
+                </td>
+<td>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">T2</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    The user data type if specified; ignored otherwise.
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">void</span></code>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">AccumulationKey</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    A template instantiation of <a class="link" href="accumulation_key.html" title="accumulation_key"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">accumulation_key</span></code></a>.
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">default_accumulation_key</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.with_accumulation.model_of"></a><a class="link" href="with_accumulation.html#tree_node.reference.with_accumulation.model_of" title="Model of">Model
+        of</a>
+</h4></div></div></div>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem"><p>
+              <a class="link" href="../concepts/associative_tree_node.html" title="Associative Tree Node"><span class="bold"><strong>Associative Tree Node</strong></span></a> if <code class="computeroutput"><span class="identifier">T2</span></code> is specified; <a class="link" href="../concepts/non_assoc_tree_node.html" title="Non-Associative Tree Node"><span class="bold"><strong>Non-Associative Tree Node</strong></span></a> otherwise
+            </p></li>
+<li class="listitem"><p>
+              any other concept that the return type of <code class="computeroutput"><span class="identifier">BaseGenerator</span></code>
+              models
+            </p></li>
+</ul></div>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.with_accumulation.public_bases"></a><a class="link" href="with_accumulation.html#tree_node.reference.with_accumulation.public_bases" title="Public Base Classes">Public
+        Base Classes</a>
+</h4></div></div></div>
+<pre class="programlisting"><span class="identifier">with_accumulation_base</span><span class="special"><</span>
+    <span class="identifier">with_accumulation</span><span class="special"><</span>
+        <span class="identifier">BaseGenerator</span>
+      <span class="special">,</span> <span class="identifier">T1</span>
+      <span class="special">,</span> <span class="identifier">T2</span>
+      <span class="special">,</span> <span class="identifier">AccumulationKey</span>
+    <span class="special">></span>
+  <span class="special">,</span> <span class="identifier">BaseGenerator</span>
+  <span class="special">,</span> <span class="identifier">T1</span>
+  <span class="special">,</span> <span class="identifier">T2</span>
+  <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">AccumulationKey</span><span class="special">::</span><span class="identifier">key</span>
+  <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">AccumulationKey</span><span class="special">::</span><span class="identifier">tag</span>
+  <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">AccumulationKey</span><span class="special">::</span><span class="identifier">includes_all_descendants</span>
+  <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">AccumulationKey</span><span class="special">::</span><span class="identifier">includes_root</span>
+  <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">AccumulationKey</span><span class="special">::</span><span class="identifier">value</span>
+<span class="special">></span>
+</pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.with_accumulation.members"></a><a class="link" href="with_accumulation.html#tree_node.reference.with_accumulation.members" title="Public Members">Public
+        Members</a>
+</h4></div></div></div>
+<p>
+          In addition to those inherited from the return type of <code class="computeroutput"><span class="identifier">BaseGenerator</span></code>,
+          the following members are defined:
+        </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+                  <p>
+                    Name
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Definition
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Where defined
+                  </p>
+                </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+                  <p>
+                    Super type
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">typedef</span> <span class="identifier">with_accumulation_base</span><span class="special"><</span>
+            <span class="identifier">with_accumulation</span>
+          <span class="special">,</span> <span class="identifier">BaseGenerator</span>
+          <span class="special">,</span> <span class="identifier">T1</span>
+          <span class="special">,</span> <span class="identifier">T2</span>
+          <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">AccumulationKey</span><span class="special">::</span><span class="identifier">key</span>
+          <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">AccumulationKey</span><span class="special">::</span><span class="identifier">tag</span>
+          <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">AccumulationKey</span><span class="special">::</span><span class="identifier">includes_all_descendants</span>
+          <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">AccumulationKey</span><span class="special">::</span><span class="identifier">includes_root</span>
+          <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">AccumulationKey</span><span class="special">::</span><span class="identifier">value</span>
+        <span class="special">></span>
+        <span class="identifier">super_t</span><span class="special">;</span>
+</pre>
+                </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>
+                    Emplacement constructor
+                  </p>
+                </td>
+<td>
+<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="special">...</span><span class="identifier">Args</span><span class="special">></span>
+<span class="keyword">explicit</span> <span class="identifier">with_accumulation</span><span class="special">(</span><span class="identifier">Args</span><span class="special">&&</span> <span class="special">...</span><span class="identifier">args</span><span class="special">);</span>
+</pre>
+                </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>
+                    Emplacement constructor with allocator
+                  </p>
+                </td>
+<td>
+<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="special">...</span><span class="identifier">Args</span><span class="special">></span>
+<span class="keyword">explicit</span> <span class="identifier">with_accumulation</span><span class="special">(</span>
+    <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">container</span><span class="special">::</span><span class="identifier">allocator_arg_t</span>
+  <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">traits</span><span class="special">::</span><span class="identifier">allocator_reference</span> <span class="identifier">allocator</span>
+  <span class="special">,</span> <span class="identifier">Args</span><span class="special">&&</span> <span class="special">...</span><span class="identifier">args</span>
+<span class="special">);</span>
+</pre>
+                </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>
+                    Copy constructor
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">with_accumulation</span><span class="special">(</span><span class="identifier">with_accumulation</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">copy</span><span class="special">);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <a class="link" href="../concepts/copyable_tree_node.html" title="Copyable Tree Node"><span class="bold"><strong>Copyable Tree Node</strong></span></a>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Copy constructor with allocator
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">with_accumulation</span><span class="special">(</span>
+    <span class="identifier">with_accumulation</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">copy</span>
+  <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">traits</span><span class="special">::</span><span class="identifier">allocator_reference</span> <span class="identifier">allocator</span>
+<span class="special">);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <a class="link" href="../concepts/copyable_tree_node.html" title="Copyable Tree Node"><span class="bold"><strong>Copyable Tree Node</strong></span></a>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Move constructor
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">with_accumulation</span><span class="special">(</span><span class="identifier">with_accumulation</span><span class="special">&&</span> <span class="identifier">source</span><span class="special">);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <a class="link" href="../concepts/movable_tree_node.html" title="Movable Tree Node"><span class="bold"><strong>Movable Tree Node</strong></span></a>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Move constructor with allocator
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">with_accumulation</span><span class="special">(</span>
+    <span class="identifier">with_accumulation</span><span class="special">&&</span> <span class="identifier">source</span>
+  <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">traits</span><span class="special">::</span><span class="identifier">allocator_reference</span> <span class="identifier">allocator</span>
+<span class="special">);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <a class="link" href="../concepts/movable_tree_node.html" title="Movable Tree Node"><span class="bold"><strong>Movable Tree Node</strong></span></a>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Copy assignment operator
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">with_accumulation</span><span class="special">&</span> <span class="keyword">operator</span><span class="special">=(</span><span class="identifier">with_accumulation</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">copy</span><span class="special">);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Assignable
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Move assignment operator
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">with_accumulation</span><span class="special">&</span> <span class="keyword">operator</span><span class="special">=(</span><span class="identifier">with_accumulation</span><span class="special">&&</span> <span class="identifier">source</span><span class="special">);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Movable
+                  </p>
+                </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.with_accumulation.non_members"></a><a class="link" href="with_accumulation.html#tree_node.reference.with_accumulation.non_members" title="Non-members">Non-members</a>
+</h4></div></div></div>
+<p>
+          Same as those defined in <a class="link" href="with_accumulation_base.html" title="with_accumulation_base< Derived , BaseGenerator , T1 , T2 , Key , Tag , IncludesAllDescendants , IncludesRoot , Value >"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">with_accumulation_base</span></code></a>.
+        </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.with_accumulation.example"></a><a class="link" href="with_accumulation.html#tree_node.reference.with_accumulation.example" title="Example">Example</a>
+</h4></div></div></div>
+<p>
+          A GUI application that renders row numbers needs to know, in sublinear
+          time, which variable-height row numbers should be rendered on-screen. Independently,
+          the application must also compute the minimum priority of each row number
+          in terms of its own priority and that of its sub-rows.
+        </p>
+<p>
+          <code class="computeroutput"><span class="identifier">GUITable</span></code> associates the
+          example key types with the user data that our program will need. <code class="computeroutput"><span class="identifier">HeightSumKey</span></code> is a template instantiation
+          of <a class="link" href="accumulation_key.html" title="accumulation_key"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">accumulation_key</span></code></a>
+          that will instruct the corresponding <a class="link" href="with_accumulation_base.html" title="with_accumulation_base< Derived , BaseGenerator , T1 , T2 , Key , Tag , IncludesAllDescendants , IncludesRoot , Value >"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">with_accumulation_base</span></code></a> template
+          instantiation to store the sum of the <code class="computeroutput"><span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_height</span></code>
+          values of a node and its children, while <code class="computeroutput"><span class="identifier">MinPriorityKey</span></code>
+          is a template instantiation of <a class="link" href="accumulation_key.html" title="accumulation_key"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">accumulation_key</span></code></a> that will instruct
+          the corresponding <code class="computeroutput"><span class="identifier">with_accumulation</span></code>
+          template instantiation to store the minimum of the <code class="computeroutput"><span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_priority</span></code>
+          values of a node and its children.
+        </p>
+<p>
+          <code class="computeroutput"><span class="identifier">GUIBinaryCompare</span></code> is a
+          Binary Predicate model that implements two
+          function call operators. The first one determines whether or not <a class="link" href="binary_descendant.html" title="binary_descendant()"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">binary_descendant</span><span class="special">()</span></code></a> should traverse the left branch;
+          the second one determines whether or not the algorithm should traverse
+          the right branch.
+        </p>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">example_keys</span> <span class="special">{</span>
+
+    <span class="keyword">struct</span> <span class="identifier">row_number</span>
+    <span class="special">{</span>
+    <span class="special">};</span>
+
+    <span class="keyword">struct</span> <span class="identifier">row_height</span>
+    <span class="special">{</span>
+    <span class="special">};</span>
+
+    <span class="keyword">struct</span> <span class="identifier">row_priority</span>
+    <span class="special">{</span>
+    <span class="special">};</span>
+<span class="special">}</span>
+
+<span class="keyword">typedef</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">fusion</span><span class="special">::</span><span class="identifier">map</span><span class="special"><</span>
+            <span class="identifier">boost</span><span class="special">::</span><span class="identifier">fusion</span><span class="special">::</span><span class="identifier">pair</span><span class="special"><</span><span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">,</span><span class="keyword">unsigned</span> <span class="keyword">int</span><span class="special">></span>
+          <span class="special">,</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">fusion</span><span class="special">::</span><span class="identifier">pair</span><span class="special"><</span><span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_height</span><span class="special">,</span><span class="keyword">unsigned</span> <span class="keyword">int</span><span class="special">></span>
+          <span class="special">,</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">fusion</span><span class="special">::</span><span class="identifier">pair</span><span class="special"><</span><span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_priority</span><span class="special">,</span><span class="keyword">unsigned</span> <span class="keyword">int</span><span class="special">></span>
+        <span class="special">></span>
+        <span class="identifier">GUITable</span><span class="special">;</span>
+<span class="keyword">typedef</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">accumulation_key</span><span class="special"><</span><span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_height</span><span class="special">></span>
+        <span class="identifier">HeightSumKey</span><span class="special">;</span>
+<span class="keyword">typedef</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">accumulation_key</span><span class="special"><</span>
+            <span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_priority</span>
+          <span class="special">,</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">accumulators</span><span class="special">::</span><span class="identifier">tag</span><span class="special">::</span><span class="identifier">min</span>
+        <span class="special">></span>
+        <span class="identifier">MinPriorityKey</span><span class="special">;</span>
+
+<span class="keyword">class</span> <span class="identifier">GUIBinaryCompare</span>
+<span class="special">{</span>
+    <span class="keyword">mutable</span> <span class="keyword">unsigned</span> <span class="keyword">int</span> <span class="identifier">total_height</span><span class="special">;</span>
+
+ <span class="keyword">public</span><span class="special">:</span>
+    <span class="identifier">GUIBinaryCompare</span><span class="special">()</span> <span class="special">:</span> <span class="identifier">total_height</span><span class="special">(</span><span class="number">0</span><span class="special">)</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">Node</span><span class="special">></span>
+    <span class="keyword">bool</span> <span class="keyword">operator</span><span class="special">()(</span><span class="keyword">unsigned</span> <span class="keyword">int</span> <span class="identifier">value</span><span class="special">,</span> <span class="identifier">Node</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">node</span><span class="special">)</span> <span class="keyword">const</span>
+    <span class="special">{</span>
+        <span class="keyword">typename</span> <span class="identifier">Node</span><span class="special">::</span><span class="identifier">const_pointer</span> <span class="identifier">left</span> <span class="special">=</span> <span class="identifier">node</span><span class="special">.</span><span class="identifier">get_left_child_ptr</span><span class="special">();</span>
+
+        <span class="keyword">return</span> <span class="identifier">left</span> <span class="special">&&</span> <span class="special">(</span>
+            <span class="identifier">value</span> <span class="special"><</span> <span class="keyword">this</span><span class="special">-></span><span class="identifier">total_height</span> <span class="special">+</span> <span class="identifier">get</span><span class="special">(*</span><span class="identifier">left</span><span class="special">,</span> <span class="identifier">HeightSumKey</span><span class="special">())</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">Node</span><span class="special">></span>
+    <span class="keyword">bool</span> <span class="keyword">operator</span><span class="special">()(</span><span class="identifier">Node</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">node</span><span class="special">,</span> <span class="keyword">unsigned</span> <span class="keyword">int</span> <span class="identifier">value</span><span class="special">)</span> <span class="keyword">const</span>
+    <span class="special">{</span>
+        <span class="keyword">this</span><span class="special">-></span><span class="identifier">total_height</span> <span class="special">+=</span> <span class="identifier">get</span><span class="special">(</span><span class="identifier">node</span><span class="special">,</span> <span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_height</span><span class="special">());</span>
+
+        <span class="keyword">typename</span> <span class="identifier">Node</span><span class="special">::</span><span class="identifier">const_pointer</span> <span class="identifier">left</span> <span class="special">=</span> <span class="identifier">node</span><span class="special">.</span><span class="identifier">get_left_child_ptr</span><span class="special">();</span>
+
+        <span class="keyword">if</span> <span class="special">(</span><span class="identifier">left</span><span class="special">)</span>
+        <span class="special">{</span>
+            <span class="keyword">this</span><span class="special">-></span><span class="identifier">total_height</span> <span class="special">+=</span> <span class="identifier">get</span><span class="special">(*</span><span class="identifier">left</span><span class="special">,</span> <span class="identifier">HeightSumKey</span><span class="special">());</span>
+        <span class="special">}</span>
+
+        <span class="keyword">return</span> <span class="keyword">this</span><span class="special">-></span><span class="identifier">total_height</span> <span class="special"><</span> <span class="identifier">value</span><span class="special">;</span>
+    <span class="special">}</span>
+<span class="special">};</span>
+</pre>
+<p>
+          With the boilerplate code out of the way, we can define the <code class="computeroutput"><span class="identifier">GUINode</span></code> data structure. The <a class="link" href="binary_node_base_gen.html" title="binary_node_base_gen<Size,AllocatorSelector>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">binary_node_base_gen</span></code></a> type induces
+          <code class="computeroutput"><span class="identifier">GUINode</span></code> to model the <a class="link" href="../concepts/binary_tree_node.html" title="Binary Tree Node"><span class="bold"><strong>Binary
+          Tree Node</strong></span></a> concept, while the <a class="link" href="with_accumulation_base.html" title="with_accumulation_base< Derived , BaseGenerator , T1 , T2 , Key , Tag , IncludesAllDescendants , IncludesRoot , Value >"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">with_accumulation_base</span></code></a> and <code class="computeroutput"><span class="identifier">with_accumulation</span></code> template instantiations
+          augment <code class="computeroutput"><span class="identifier">GUINode</span></code> with the
+          values associated with <code class="computeroutput"><span class="identifier">HeightSumKey</span></code>
+          and <code class="computeroutput"><span class="identifier">MinPriorityKey</span></code>, respectively.
+        </p>
+<pre class="programlisting"><span class="keyword">typedef</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">with_accumulation</span><span class="special"><</span>
+            <span class="identifier">boost</span><span class="special">::</span><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">with_accumulation_base_gen</span><span class="special"><</span>
+                <span class="identifier">boost</span><span class="special">::</span><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">binary_node_base_gen</span><span class="special"><></span>
+              <span class="special">,</span> <span class="identifier">HeightSumKey</span>
+            <span class="special">></span>
+          <span class="special">,</span> <span class="identifier">GUITable</span>
+          <span class="special">,</span> <span class="keyword">void</span>
+          <span class="special">,</span> <span class="identifier">MinPriorityKey</span>
+        <span class="special">></span>
+        <span class="identifier">GUINode</span><span class="special">;</span>
+</pre>
+<p>
+          The syntax for creating the root node and its descendants is no different
+          for the <code class="computeroutput"><span class="identifier">GUINode</span></code> type than
+          it is for <code class="literal"><a class="link" href="binary_node.html" title="binary_node<T,Size,AllocatorSelector>">tree_node::binary_node</a><GUITable></code>.
+          The accumulation values are calculated behind the scenes.
+        </p>
+<pre class="programlisting"><span class="identifier">GUINode</span> <span class="identifier">gui_root</span><span class="special">(</span>
+    <span class="identifier">boost</span><span class="special">::</span><span class="identifier">fusion</span><span class="special">::</span><span class="identifier">make_pair</span><span class="special"><</span><span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">>(</span><span class="number">20</span><span class="special">)</span>
+  <span class="special">,</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">fusion</span><span class="special">::</span><span class="identifier">make_pair</span><span class="special"><</span><span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_height</span><span class="special">>(</span><span class="number">12</span><span class="special">)</span>
+  <span class="special">,</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">fusion</span><span class="special">::</span><span class="identifier">make_pair</span><span class="special"><</span><span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_priority</span><span class="special">>(</span><span class="number">64</span><span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">gui_root</span><span class="special">.</span><span class="identifier">emplace_left</span><span class="special">(</span>
+    <span class="identifier">boost</span><span class="special">::</span><span class="identifier">fusion</span><span class="special">::</span><span class="identifier">make_pair</span><span class="special"><</span><span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">>(</span><span class="number">0</span><span class="special">)</span>
+  <span class="special">,</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">fusion</span><span class="special">::</span><span class="identifier">make_pair</span><span class="special"><</span><span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_height</span><span class="special">>(</span><span class="number">12</span><span class="special">)</span>
+  <span class="special">,</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">fusion</span><span class="special">::</span><span class="identifier">make_pair</span><span class="special"><</span><span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_priority</span><span class="special">>(</span><span class="number">20</span><span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">gui_root</span><span class="special">.</span><span class="identifier">emplace_left</span><span class="special">(</span>
+    <span class="identifier">boost</span><span class="special">::</span><span class="identifier">fusion</span><span class="special">::</span><span class="identifier">make_pair</span><span class="special"><</span><span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">>(</span><span class="number">3</span><span class="special">)</span>
+  <span class="special">,</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">fusion</span><span class="special">::</span><span class="identifier">make_pair</span><span class="special"><</span><span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_height</span><span class="special">>(</span><span class="number">4</span><span class="special">)</span>
+  <span class="special">,</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">fusion</span><span class="special">::</span><span class="identifier">make_pair</span><span class="special"><</span><span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_priority</span><span class="special">>(</span><span class="number">88</span><span class="special">)</span>
+<span class="special">)-></span><span class="identifier">emplace_right</span><span class="special">(</span>
+    <span class="identifier">boost</span><span class="special">::</span><span class="identifier">fusion</span><span class="special">::</span><span class="identifier">make_pair</span><span class="special"><</span><span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">>(</span><span class="number">4</span><span class="special">)</span>
+  <span class="special">,</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">fusion</span><span class="special">::</span><span class="identifier">make_pair</span><span class="special"><</span><span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_height</span><span class="special">>(</span><span class="number">12</span><span class="special">)</span>
+  <span class="special">,</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">fusion</span><span class="special">::</span><span class="identifier">make_pair</span><span class="special"><</span><span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_priority</span><span class="special">>(</span><span class="number">79</span><span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">gui_root</span><span class="special">.</span><span class="identifier">emplace_left</span><span class="special">(</span>
+    <span class="identifier">boost</span><span class="special">::</span><span class="identifier">fusion</span><span class="special">::</span><span class="identifier">make_pair</span><span class="special"><</span><span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">>(</span><span class="number">5</span><span class="special">)</span>
+  <span class="special">,</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">fusion</span><span class="special">::</span><span class="identifier">make_pair</span><span class="special"><</span><span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_height</span><span class="special">>(</span><span class="number">4</span><span class="special">)</span>
+  <span class="special">,</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">fusion</span><span class="special">::</span><span class="identifier">make_pair</span><span class="special"><</span><span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_priority</span><span class="special">>(</span><span class="number">36</span><span class="special">)</span>
+<span class="special">)-></span><span class="identifier">emplace_right</span><span class="special">(</span>
+    <span class="identifier">boost</span><span class="special">::</span><span class="identifier">fusion</span><span class="special">::</span><span class="identifier">make_pair</span><span class="special"><</span><span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">>(</span><span class="number">10</span><span class="special">)</span>
+  <span class="special">,</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">fusion</span><span class="special">::</span><span class="identifier">make_pair</span><span class="special"><</span><span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_height</span><span class="special">>(</span><span class="number">4</span><span class="special">)</span>
+  <span class="special">,</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">fusion</span><span class="special">::</span><span class="identifier">make_pair</span><span class="special"><</span><span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_priority</span><span class="special">>(</span><span class="number">5</span><span class="special">)</span>
+<span class="special">)-></span><span class="identifier">emplace_right</span><span class="special">(</span>
+    <span class="identifier">boost</span><span class="special">::</span><span class="identifier">fusion</span><span class="special">::</span><span class="identifier">make_pair</span><span class="special"><</span><span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">>(</span><span class="number">12</span><span class="special">)</span>
+  <span class="special">,</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">fusion</span><span class="special">::</span><span class="identifier">make_pair</span><span class="special"><</span><span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_height</span><span class="special">>(</span><span class="number">4</span><span class="special">)</span>
+  <span class="special">,</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">fusion</span><span class="special">::</span><span class="identifier">make_pair</span><span class="special"><</span><span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_priority</span><span class="special">>(</span><span class="number">19</span><span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">gui_root</span><span class="special">.</span><span class="identifier">emplace_right</span><span class="special">(</span>
+    <span class="identifier">boost</span><span class="special">::</span><span class="identifier">fusion</span><span class="special">::</span><span class="identifier">make_pair</span><span class="special"><</span><span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">>(</span><span class="number">59</span><span class="special">)</span>
+  <span class="special">,</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">fusion</span><span class="special">::</span><span class="identifier">make_pair</span><span class="special"><</span><span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_height</span><span class="special">>(</span><span class="number">12</span><span class="special">)</span>
+  <span class="special">,</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">fusion</span><span class="special">::</span><span class="identifier">make_pair</span><span class="special"><</span><span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_priority</span><span class="special">>(</span><span class="number">25</span><span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">gui_root</span><span class="special">.</span><span class="identifier">emplace_right</span><span class="special">(</span>
+    <span class="identifier">boost</span><span class="special">::</span><span class="identifier">fusion</span><span class="special">::</span><span class="identifier">make_pair</span><span class="special"><</span><span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">>(</span><span class="number">55</span><span class="special">)</span>
+  <span class="special">,</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">fusion</span><span class="special">::</span><span class="identifier">make_pair</span><span class="special"><</span><span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_height</span><span class="special">>(</span><span class="number">12</span><span class="special">)</span>
+  <span class="special">,</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">fusion</span><span class="special">::</span><span class="identifier">make_pair</span><span class="special"><</span><span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_priority</span><span class="special">>(</span><span class="number">91</span><span class="special">)</span>
+<span class="special">)-></span><span class="identifier">emplace_left</span><span class="special">(</span>
+    <span class="identifier">boost</span><span class="special">::</span><span class="identifier">fusion</span><span class="special">::</span><span class="identifier">make_pair</span><span class="special"><</span><span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">>(</span><span class="number">51</span><span class="special">)</span>
+  <span class="special">,</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">fusion</span><span class="special">::</span><span class="identifier">make_pair</span><span class="special"><</span><span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_height</span><span class="special">>(</span><span class="number">12</span><span class="special">)</span>
+  <span class="special">,</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">fusion</span><span class="special">::</span><span class="identifier">make_pair</span><span class="special"><</span><span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_priority</span><span class="special">>(</span><span class="number">7</span><span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">gui_root</span><span class="special">.</span><span class="identifier">emplace_right</span><span class="special">(</span>
+    <span class="identifier">boost</span><span class="special">::</span><span class="identifier">fusion</span><span class="special">::</span><span class="identifier">make_pair</span><span class="special"><</span><span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">>(</span><span class="number">42</span><span class="special">)</span>
+  <span class="special">,</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">fusion</span><span class="special">::</span><span class="identifier">make_pair</span><span class="special"><</span><span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_height</span><span class="special">>(</span><span class="number">12</span><span class="special">)</span>
+  <span class="special">,</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">fusion</span><span class="special">::</span><span class="identifier">make_pair</span><span class="special"><</span><span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_priority</span><span class="special">>(</span><span class="number">19</span><span class="special">)</span>
+<span class="special">)-></span><span class="identifier">emplace_left</span><span class="special">(</span>
+    <span class="identifier">boost</span><span class="special">::</span><span class="identifier">fusion</span><span class="special">::</span><span class="identifier">make_pair</span><span class="special"><</span><span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">>(</span><span class="number">22</span><span class="special">)</span>
+  <span class="special">,</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">fusion</span><span class="special">::</span><span class="identifier">make_pair</span><span class="special"><</span><span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_height</span><span class="special">>(</span><span class="number">12</span><span class="special">)</span>
+  <span class="special">,</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">fusion</span><span class="special">::</span><span class="identifier">make_pair</span><span class="special"><</span><span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_priority</span><span class="special">>(</span><span class="number">54</span><span class="special">)</span>
+<span class="special">);</span>
+</pre>
+<p>
+          Using the <a class="link" href="binary_descendant.html" title="binary_descendant()"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">binary_descendant</span><span class="special">()</span></code></a>
+          algorithm with <code class="computeroutput"><span class="identifier">GUIBinaryCompare</span></code>
+          enables the application to find the row number that occupies the space
+          a given number of pixels from the top in logarithmic time. A traversal
+          through the nodes will also reveal that the tree exhibits the heap-order
+          property with respect to <code class="computeroutput"><span class="identifier">MinPriorityKey</span></code>
+          values.
+        </p>
+<pre class="programlisting"><span class="keyword">for</span> <span class="special">(</span>
+    <span class="identifier">boost</span><span class="special">::</span><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">breadth_first_descendant_iterator</span><span class="special"><</span><span class="identifier">GUINode</span> <span class="keyword">const</span><span class="special">></span> <span class="identifier">itr</span><span class="special">(</span>
+        <span class="identifier">gui_root</span>
+    <span class="special">);</span>
+    <span class="identifier">itr</span><span class="special">;</span>
+    <span class="special">++</span><span class="identifier">itr</span>
+<span class="special">)</span>
+<span class="special">{</span>
+    <span class="identifier">BOOST_CHECK</span><span class="special">(</span>
+        <span class="identifier">get</span><span class="special">(*</span><span class="identifier">itr</span><span class="special">-></span><span class="identifier">get_parent_ptr</span><span class="special">(),</span> <span class="identifier">MinPriorityKey</span><span class="special">())</span>
+     <span class="special"><=</span> <span class="identifier">get</span><span class="special">(*</span><span class="identifier">itr</span><span class="special">,</span> <span class="identifier">MinPriorityKey</span><span class="special">())</span>
+    <span class="special">);</span>
+<span class="special">}</span>
+
+<span class="identifier">BOOST_CHECK</span><span class="special">(</span>
+    <span class="number">0</span> <span class="special">==</span> <span class="identifier">get</span><span class="special">(</span>
+        <span class="special">*</span><span class="identifier">binary_descendant</span><span class="special">(&</span><span class="identifier">gui_root</span><span class="special">,</span> <span class="number">0</span><span class="special">,</span> <span class="identifier">GUIBinaryCompare</span><span class="special">())</span>
+      <span class="special">,</span> <span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">()</span>
+    <span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">BOOST_CHECK</span><span class="special">(</span>
+    <span class="number">0</span> <span class="special">==</span> <span class="identifier">get</span><span class="special">(</span>
+        <span class="special">*</span><span class="identifier">binary_descendant</span><span class="special">(&</span><span class="identifier">gui_root</span><span class="special">,</span> <span class="number">1</span><span class="special">,</span> <span class="identifier">GUIBinaryCompare</span><span class="special">())</span>
+      <span class="special">,</span> <span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">()</span>
+    <span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">BOOST_CHECK</span><span class="special">(</span>
+    <span class="number">0</span> <span class="special">==</span> <span class="identifier">get</span><span class="special">(</span>
+        <span class="special">*</span><span class="identifier">binary_descendant</span><span class="special">(&</span><span class="identifier">gui_root</span><span class="special">,</span> <span class="number">2</span><span class="special">,</span> <span class="identifier">GUIBinaryCompare</span><span class="special">())</span>
+      <span class="special">,</span> <span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">()</span>
+    <span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">BOOST_CHECK</span><span class="special">(</span>
+    <span class="number">0</span> <span class="special">==</span> <span class="identifier">get</span><span class="special">(</span>
+        <span class="special">*</span><span class="identifier">binary_descendant</span><span class="special">(&</span><span class="identifier">gui_root</span><span class="special">,</span> <span class="number">3</span><span class="special">,</span> <span class="identifier">GUIBinaryCompare</span><span class="special">())</span>
+      <span class="special">,</span> <span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">()</span>
+    <span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">BOOST_CHECK</span><span class="special">(</span>
+    <span class="number">0</span> <span class="special">==</span> <span class="identifier">get</span><span class="special">(</span>
+        <span class="special">*</span><span class="identifier">binary_descendant</span><span class="special">(&</span><span class="identifier">gui_root</span><span class="special">,</span> <span class="number">4</span><span class="special">,</span> <span class="identifier">GUIBinaryCompare</span><span class="special">())</span>
+      <span class="special">,</span> <span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">()</span>
+    <span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">BOOST_CHECK</span><span class="special">(</span>
+    <span class="number">0</span> <span class="special">==</span> <span class="identifier">get</span><span class="special">(</span>
+        <span class="special">*</span><span class="identifier">binary_descendant</span><span class="special">(&</span><span class="identifier">gui_root</span><span class="special">,</span> <span class="number">5</span><span class="special">,</span> <span class="identifier">GUIBinaryCompare</span><span class="special">())</span>
+      <span class="special">,</span> <span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">()</span>
+    <span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">BOOST_CHECK</span><span class="special">(</span>
+    <span class="number">0</span> <span class="special">==</span> <span class="identifier">get</span><span class="special">(</span>
+        <span class="special">*</span><span class="identifier">binary_descendant</span><span class="special">(&</span><span class="identifier">gui_root</span><span class="special">,</span> <span class="number">6</span><span class="special">,</span> <span class="identifier">GUIBinaryCompare</span><span class="special">())</span>
+      <span class="special">,</span> <span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">()</span>
+    <span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">BOOST_CHECK</span><span class="special">(</span>
+    <span class="number">0</span> <span class="special">==</span> <span class="identifier">get</span><span class="special">(</span>
+        <span class="special">*</span><span class="identifier">binary_descendant</span><span class="special">(&</span><span class="identifier">gui_root</span><span class="special">,</span> <span class="number">7</span><span class="special">,</span> <span class="identifier">GUIBinaryCompare</span><span class="special">())</span>
+      <span class="special">,</span> <span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">()</span>
+    <span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">BOOST_CHECK</span><span class="special">(</span>
+    <span class="number">0</span> <span class="special">==</span> <span class="identifier">get</span><span class="special">(</span>
+        <span class="special">*</span><span class="identifier">binary_descendant</span><span class="special">(&</span><span class="identifier">gui_root</span><span class="special">,</span> <span class="number">8</span><span class="special">,</span> <span class="identifier">GUIBinaryCompare</span><span class="special">())</span>
+      <span class="special">,</span> <span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">()</span>
+    <span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">BOOST_CHECK</span><span class="special">(</span>
+    <span class="number">0</span> <span class="special">==</span> <span class="identifier">get</span><span class="special">(</span>
+        <span class="special">*</span><span class="identifier">binary_descendant</span><span class="special">(&</span><span class="identifier">gui_root</span><span class="special">,</span> <span class="number">9</span><span class="special">,</span> <span class="identifier">GUIBinaryCompare</span><span class="special">())</span>
+      <span class="special">,</span> <span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">()</span>
+    <span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">BOOST_CHECK</span><span class="special">(</span>
+    <span class="number">0</span> <span class="special">==</span> <span class="identifier">get</span><span class="special">(</span>
+        <span class="special">*</span><span class="identifier">binary_descendant</span><span class="special">(&</span><span class="identifier">gui_root</span><span class="special">,</span> <span class="number">10</span><span class="special">,</span> <span class="identifier">GUIBinaryCompare</span><span class="special">())</span>
+      <span class="special">,</span> <span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">()</span>
+    <span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">BOOST_CHECK</span><span class="special">(</span>
+    <span class="number">0</span> <span class="special">==</span> <span class="identifier">get</span><span class="special">(</span>
+        <span class="special">*</span><span class="identifier">binary_descendant</span><span class="special">(&</span><span class="identifier">gui_root</span><span class="special">,</span> <span class="number">11</span><span class="special">,</span> <span class="identifier">GUIBinaryCompare</span><span class="special">())</span>
+      <span class="special">,</span> <span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">()</span>
+    <span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">BOOST_CHECK</span><span class="special">(</span>
+    <span class="number">3</span> <span class="special">==</span> <span class="identifier">get</span><span class="special">(</span>
+        <span class="special">*</span><span class="identifier">binary_descendant</span><span class="special">(&</span><span class="identifier">gui_root</span><span class="special">,</span> <span class="number">12</span><span class="special">,</span> <span class="identifier">GUIBinaryCompare</span><span class="special">())</span>
+      <span class="special">,</span> <span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">()</span>
+    <span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">BOOST_CHECK</span><span class="special">(</span>
+    <span class="number">3</span> <span class="special">==</span> <span class="identifier">get</span><span class="special">(</span>
+        <span class="special">*</span><span class="identifier">binary_descendant</span><span class="special">(&</span><span class="identifier">gui_root</span><span class="special">,</span> <span class="number">13</span><span class="special">,</span> <span class="identifier">GUIBinaryCompare</span><span class="special">())</span>
+      <span class="special">,</span> <span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">()</span>
+    <span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">BOOST_CHECK</span><span class="special">(</span>
+    <span class="number">3</span> <span class="special">==</span> <span class="identifier">get</span><span class="special">(</span>
+        <span class="special">*</span><span class="identifier">binary_descendant</span><span class="special">(&</span><span class="identifier">gui_root</span><span class="special">,</span> <span class="number">14</span><span class="special">,</span> <span class="identifier">GUIBinaryCompare</span><span class="special">())</span>
+      <span class="special">,</span> <span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">()</span>
+    <span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">BOOST_CHECK</span><span class="special">(</span>
+    <span class="number">3</span> <span class="special">==</span> <span class="identifier">get</span><span class="special">(</span>
+        <span class="special">*</span><span class="identifier">binary_descendant</span><span class="special">(&</span><span class="identifier">gui_root</span><span class="special">,</span> <span class="number">15</span><span class="special">,</span> <span class="identifier">GUIBinaryCompare</span><span class="special">())</span>
+      <span class="special">,</span> <span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">()</span>
+    <span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">BOOST_CHECK</span><span class="special">(</span>
+    <span class="number">3</span> <span class="special">==</span> <span class="identifier">get</span><span class="special">(</span>
+        <span class="special">*</span><span class="identifier">binary_descendant</span><span class="special">(&</span><span class="identifier">gui_root</span><span class="special">,</span> <span class="number">16</span><span class="special">,</span> <span class="identifier">GUIBinaryCompare</span><span class="special">())</span>
+      <span class="special">,</span> <span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">()</span>
+    <span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">BOOST_CHECK</span><span class="special">(</span>
+    <span class="number">4</span> <span class="special">==</span> <span class="identifier">get</span><span class="special">(</span>
+        <span class="special">*</span><span class="identifier">binary_descendant</span><span class="special">(&</span><span class="identifier">gui_root</span><span class="special">,</span> <span class="number">17</span><span class="special">,</span> <span class="identifier">GUIBinaryCompare</span><span class="special">())</span>
+      <span class="special">,</span> <span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">()</span>
+    <span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">BOOST_CHECK</span><span class="special">(</span>
+    <span class="number">4</span> <span class="special">==</span> <span class="identifier">get</span><span class="special">(</span>
+        <span class="special">*</span><span class="identifier">binary_descendant</span><span class="special">(&</span><span class="identifier">gui_root</span><span class="special">,</span> <span class="number">18</span><span class="special">,</span> <span class="identifier">GUIBinaryCompare</span><span class="special">())</span>
+      <span class="special">,</span> <span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">()</span>
+    <span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">BOOST_CHECK</span><span class="special">(</span>
+    <span class="number">4</span> <span class="special">==</span> <span class="identifier">get</span><span class="special">(</span>
+        <span class="special">*</span><span class="identifier">binary_descendant</span><span class="special">(&</span><span class="identifier">gui_root</span><span class="special">,</span> <span class="number">19</span><span class="special">,</span> <span class="identifier">GUIBinaryCompare</span><span class="special">())</span>
+      <span class="special">,</span> <span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">()</span>
+    <span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">BOOST_CHECK</span><span class="special">(</span>
+    <span class="number">4</span> <span class="special">==</span> <span class="identifier">get</span><span class="special">(</span>
+        <span class="special">*</span><span class="identifier">binary_descendant</span><span class="special">(&</span><span class="identifier">gui_root</span><span class="special">,</span> <span class="number">20</span><span class="special">,</span> <span class="identifier">GUIBinaryCompare</span><span class="special">())</span>
+      <span class="special">,</span> <span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">()</span>
+    <span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">BOOST_CHECK</span><span class="special">(</span>
+    <span class="number">4</span> <span class="special">==</span> <span class="identifier">get</span><span class="special">(</span>
+        <span class="special">*</span><span class="identifier">binary_descendant</span><span class="special">(&</span><span class="identifier">gui_root</span><span class="special">,</span> <span class="number">21</span><span class="special">,</span> <span class="identifier">GUIBinaryCompare</span><span class="special">())</span>
+      <span class="special">,</span> <span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">()</span>
+    <span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">BOOST_CHECK</span><span class="special">(</span>
+    <span class="number">4</span> <span class="special">==</span> <span class="identifier">get</span><span class="special">(</span>
+        <span class="special">*</span><span class="identifier">binary_descendant</span><span class="special">(&</span><span class="identifier">gui_root</span><span class="special">,</span> <span class="number">22</span><span class="special">,</span> <span class="identifier">GUIBinaryCompare</span><span class="special">())</span>
+      <span class="special">,</span> <span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">()</span>
+    <span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">BOOST_CHECK</span><span class="special">(</span>
+    <span class="number">4</span> <span class="special">==</span> <span class="identifier">get</span><span class="special">(</span>
+        <span class="special">*</span><span class="identifier">binary_descendant</span><span class="special">(&</span><span class="identifier">gui_root</span><span class="special">,</span> <span class="number">23</span><span class="special">,</span> <span class="identifier">GUIBinaryCompare</span><span class="special">())</span>
+      <span class="special">,</span> <span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">()</span>
+    <span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">BOOST_CHECK</span><span class="special">(</span>
+    <span class="number">4</span> <span class="special">==</span> <span class="identifier">get</span><span class="special">(</span>
+        <span class="special">*</span><span class="identifier">binary_descendant</span><span class="special">(&</span><span class="identifier">gui_root</span><span class="special">,</span> <span class="number">24</span><span class="special">,</span> <span class="identifier">GUIBinaryCompare</span><span class="special">())</span>
+      <span class="special">,</span> <span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">()</span>
+    <span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">BOOST_CHECK</span><span class="special">(</span>
+    <span class="number">4</span> <span class="special">==</span> <span class="identifier">get</span><span class="special">(</span>
+        <span class="special">*</span><span class="identifier">binary_descendant</span><span class="special">(&</span><span class="identifier">gui_root</span><span class="special">,</span> <span class="number">25</span><span class="special">,</span> <span class="identifier">GUIBinaryCompare</span><span class="special">())</span>
+      <span class="special">,</span> <span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">()</span>
+    <span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">BOOST_CHECK</span><span class="special">(</span>
+    <span class="number">4</span> <span class="special">==</span> <span class="identifier">get</span><span class="special">(</span>
+        <span class="special">*</span><span class="identifier">binary_descendant</span><span class="special">(&</span><span class="identifier">gui_root</span><span class="special">,</span> <span class="number">26</span><span class="special">,</span> <span class="identifier">GUIBinaryCompare</span><span class="special">())</span>
+      <span class="special">,</span> <span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">()</span>
+    <span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">BOOST_CHECK</span><span class="special">(</span>
+    <span class="number">4</span> <span class="special">==</span> <span class="identifier">get</span><span class="special">(</span>
+        <span class="special">*</span><span class="identifier">binary_descendant</span><span class="special">(&</span><span class="identifier">gui_root</span><span class="special">,</span> <span class="number">27</span><span class="special">,</span> <span class="identifier">GUIBinaryCompare</span><span class="special">())</span>
+      <span class="special">,</span> <span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">()</span>
+    <span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">BOOST_CHECK</span><span class="special">(</span>
+    <span class="number">5</span> <span class="special">==</span> <span class="identifier">get</span><span class="special">(</span>
+        <span class="special">*</span><span class="identifier">binary_descendant</span><span class="special">(&</span><span class="identifier">gui_root</span><span class="special">,</span> <span class="number">28</span><span class="special">,</span> <span class="identifier">GUIBinaryCompare</span><span class="special">())</span>
+      <span class="special">,</span> <span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">()</span>
+    <span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">BOOST_CHECK</span><span class="special">(</span>
+    <span class="number">5</span> <span class="special">==</span> <span class="identifier">get</span><span class="special">(</span>
+        <span class="special">*</span><span class="identifier">binary_descendant</span><span class="special">(&</span><span class="identifier">gui_root</span><span class="special">,</span> <span class="number">29</span><span class="special">,</span> <span class="identifier">GUIBinaryCompare</span><span class="special">())</span>
+      <span class="special">,</span> <span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">()</span>
+    <span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">BOOST_CHECK</span><span class="special">(</span>
+    <span class="number">5</span> <span class="special">==</span> <span class="identifier">get</span><span class="special">(</span>
+        <span class="special">*</span><span class="identifier">binary_descendant</span><span class="special">(&</span><span class="identifier">gui_root</span><span class="special">,</span> <span class="number">30</span><span class="special">,</span> <span class="identifier">GUIBinaryCompare</span><span class="special">())</span>
+      <span class="special">,</span> <span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">()</span>
+    <span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">BOOST_CHECK</span><span class="special">(</span>
+    <span class="number">5</span> <span class="special">==</span> <span class="identifier">get</span><span class="special">(</span>
+        <span class="special">*</span><span class="identifier">binary_descendant</span><span class="special">(&</span><span class="identifier">gui_root</span><span class="special">,</span> <span class="number">31</span><span class="special">,</span> <span class="identifier">GUIBinaryCompare</span><span class="special">())</span>
+      <span class="special">,</span> <span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">()</span>
+    <span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">BOOST_CHECK</span><span class="special">(</span>
+    <span class="number">5</span> <span class="special">==</span> <span class="identifier">get</span><span class="special">(</span>
+        <span class="special">*</span><span class="identifier">binary_descendant</span><span class="special">(&</span><span class="identifier">gui_root</span><span class="special">,</span> <span class="number">32</span><span class="special">,</span> <span class="identifier">GUIBinaryCompare</span><span class="special">())</span>
+      <span class="special">,</span> <span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">()</span>
+    <span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">BOOST_CHECK</span><span class="special">(</span>
+    <span class="number">10</span> <span class="special">==</span> <span class="identifier">get</span><span class="special">(</span>
+        <span class="special">*</span><span class="identifier">binary_descendant</span><span class="special">(&</span><span class="identifier">gui_root</span><span class="special">,</span> <span class="number">33</span><span class="special">,</span> <span class="identifier">GUIBinaryCompare</span><span class="special">())</span>
+      <span class="special">,</span> <span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">()</span>
+    <span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">BOOST_CHECK</span><span class="special">(</span>
+    <span class="number">10</span> <span class="special">==</span> <span class="identifier">get</span><span class="special">(</span>
+        <span class="special">*</span><span class="identifier">binary_descendant</span><span class="special">(&</span><span class="identifier">gui_root</span><span class="special">,</span> <span class="number">34</span><span class="special">,</span> <span class="identifier">GUIBinaryCompare</span><span class="special">())</span>
+      <span class="special">,</span> <span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">()</span>
+    <span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">BOOST_CHECK</span><span class="special">(</span>
+    <span class="number">10</span> <span class="special">==</span> <span class="identifier">get</span><span class="special">(</span>
+        <span class="special">*</span><span class="identifier">binary_descendant</span><span class="special">(&</span><span class="identifier">gui_root</span><span class="special">,</span> <span class="number">35</span><span class="special">,</span> <span class="identifier">GUIBinaryCompare</span><span class="special">())</span>
+      <span class="special">,</span> <span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">()</span>
+    <span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">BOOST_CHECK</span><span class="special">(</span>
+    <span class="number">10</span> <span class="special">==</span> <span class="identifier">get</span><span class="special">(</span>
+        <span class="special">*</span><span class="identifier">binary_descendant</span><span class="special">(&</span><span class="identifier">gui_root</span><span class="special">,</span> <span class="number">36</span><span class="special">,</span> <span class="identifier">GUIBinaryCompare</span><span class="special">())</span>
+      <span class="special">,</span> <span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">()</span>
+    <span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">BOOST_CHECK</span><span class="special">(</span>
+    <span class="number">12</span> <span class="special">==</span> <span class="identifier">get</span><span class="special">(</span>
+        <span class="special">*</span><span class="identifier">binary_descendant</span><span class="special">(&</span><span class="identifier">gui_root</span><span class="special">,</span> <span class="number">37</span><span class="special">,</span> <span class="identifier">GUIBinaryCompare</span><span class="special">())</span>
+      <span class="special">,</span> <span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">()</span>
+    <span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">BOOST_CHECK</span><span class="special">(</span>
+    <span class="number">12</span> <span class="special">==</span> <span class="identifier">get</span><span class="special">(</span>
+        <span class="special">*</span><span class="identifier">binary_descendant</span><span class="special">(&</span><span class="identifier">gui_root</span><span class="special">,</span> <span class="number">38</span><span class="special">,</span> <span class="identifier">GUIBinaryCompare</span><span class="special">())</span>
+      <span class="special">,</span> <span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">()</span>
+    <span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">BOOST_CHECK</span><span class="special">(</span>
+    <span class="number">12</span> <span class="special">==</span> <span class="identifier">get</span><span class="special">(</span>
+        <span class="special">*</span><span class="identifier">binary_descendant</span><span class="special">(&</span><span class="identifier">gui_root</span><span class="special">,</span> <span class="number">39</span><span class="special">,</span> <span class="identifier">GUIBinaryCompare</span><span class="special">())</span>
+      <span class="special">,</span> <span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">()</span>
+    <span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">BOOST_CHECK</span><span class="special">(</span>
+    <span class="number">20</span> <span class="special">==</span> <span class="identifier">get</span><span class="special">(</span>
+        <span class="special">*</span><span class="identifier">binary_descendant</span><span class="special">(&</span><span class="identifier">gui_root</span><span class="special">,</span> <span class="number">40</span><span class="special">,</span> <span class="identifier">GUIBinaryCompare</span><span class="special">())</span>
+      <span class="special">,</span> <span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">()</span>
+    <span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">BOOST_CHECK</span><span class="special">(</span>
+    <span class="number">20</span> <span class="special">==</span> <span class="identifier">get</span><span class="special">(</span>
+        <span class="special">*</span><span class="identifier">binary_descendant</span><span class="special">(&</span><span class="identifier">gui_root</span><span class="special">,</span> <span class="number">41</span><span class="special">,</span> <span class="identifier">GUIBinaryCompare</span><span class="special">())</span>
+      <span class="special">,</span> <span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">()</span>
+    <span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">BOOST_CHECK</span><span class="special">(</span>
+    <span class="number">20</span> <span class="special">==</span> <span class="identifier">get</span><span class="special">(</span>
+        <span class="special">*</span><span class="identifier">binary_descendant</span><span class="special">(&</span><span class="identifier">gui_root</span><span class="special">,</span> <span class="number">42</span><span class="special">,</span> <span class="identifier">GUIBinaryCompare</span><span class="special">())</span>
+      <span class="special">,</span> <span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">()</span>
+    <span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">BOOST_CHECK</span><span class="special">(</span>
+    <span class="number">20</span> <span class="special">==</span> <span class="identifier">get</span><span class="special">(</span>
+        <span class="special">*</span><span class="identifier">binary_descendant</span><span class="special">(&</span><span class="identifier">gui_root</span><span class="special">,</span> <span class="number">43</span><span class="special">,</span> <span class="identifier">GUIBinaryCompare</span><span class="special">())</span>
+      <span class="special">,</span> <span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">()</span>
+    <span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">BOOST_CHECK</span><span class="special">(</span>
+    <span class="number">20</span> <span class="special">==</span> <span class="identifier">get</span><span class="special">(</span>
+        <span class="special">*</span><span class="identifier">binary_descendant</span><span class="special">(&</span><span class="identifier">gui_root</span><span class="special">,</span> <span class="number">44</span><span class="special">,</span> <span class="identifier">GUIBinaryCompare</span><span class="special">())</span>
+      <span class="special">,</span> <span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">()</span>
+    <span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">BOOST_CHECK</span><span class="special">(</span>
+    <span class="number">20</span> <span class="special">==</span> <span class="identifier">get</span><span class="special">(</span>
+        <span class="special">*</span><span class="identifier">binary_descendant</span><span class="special">(&</span><span class="identifier">gui_root</span><span class="special">,</span> <span class="number">45</span><span class="special">,</span> <span class="identifier">GUIBinaryCompare</span><span class="special">())</span>
+      <span class="special">,</span> <span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">()</span>
+    <span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">BOOST_CHECK</span><span class="special">(</span>
+    <span class="number">20</span> <span class="special">==</span> <span class="identifier">get</span><span class="special">(</span>
+        <span class="special">*</span><span class="identifier">binary_descendant</span><span class="special">(&</span><span class="identifier">gui_root</span><span class="special">,</span> <span class="number">46</span><span class="special">,</span> <span class="identifier">GUIBinaryCompare</span><span class="special">())</span>
+      <span class="special">,</span> <span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">()</span>
+    <span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">BOOST_CHECK</span><span class="special">(</span>
+    <span class="number">20</span> <span class="special">==</span> <span class="identifier">get</span><span class="special">(</span>
+        <span class="special">*</span><span class="identifier">binary_descendant</span><span class="special">(&</span><span class="identifier">gui_root</span><span class="special">,</span> <span class="number">47</span><span class="special">,</span> <span class="identifier">GUIBinaryCompare</span><span class="special">())</span>
+      <span class="special">,</span> <span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">()</span>
+    <span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">BOOST_CHECK</span><span class="special">(</span>
+    <span class="number">20</span> <span class="special">==</span> <span class="identifier">get</span><span class="special">(</span>
+        <span class="special">*</span><span class="identifier">binary_descendant</span><span class="special">(&</span><span class="identifier">gui_root</span><span class="special">,</span> <span class="number">48</span><span class="special">,</span> <span class="identifier">GUIBinaryCompare</span><span class="special">())</span>
+      <span class="special">,</span> <span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">()</span>
+    <span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">BOOST_CHECK</span><span class="special">(</span>
+    <span class="number">20</span> <span class="special">==</span> <span class="identifier">get</span><span class="special">(</span>
+        <span class="special">*</span><span class="identifier">binary_descendant</span><span class="special">(&</span><span class="identifier">gui_root</span><span class="special">,</span> <span class="number">49</span><span class="special">,</span> <span class="identifier">GUIBinaryCompare</span><span class="special">())</span>
+      <span class="special">,</span> <span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">()</span>
+    <span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">BOOST_CHECK</span><span class="special">(</span>
+    <span class="number">20</span> <span class="special">==</span> <span class="identifier">get</span><span class="special">(</span>
+        <span class="special">*</span><span class="identifier">binary_descendant</span><span class="special">(&</span><span class="identifier">gui_root</span><span class="special">,</span> <span class="number">50</span><span class="special">,</span> <span class="identifier">GUIBinaryCompare</span><span class="special">())</span>
+      <span class="special">,</span> <span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">()</span>
+    <span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">BOOST_CHECK</span><span class="special">(</span>
+    <span class="number">20</span> <span class="special">==</span> <span class="identifier">get</span><span class="special">(</span>
+        <span class="special">*</span><span class="identifier">binary_descendant</span><span class="special">(&</span><span class="identifier">gui_root</span><span class="special">,</span> <span class="number">51</span><span class="special">,</span> <span class="identifier">GUIBinaryCompare</span><span class="special">())</span>
+      <span class="special">,</span> <span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">()</span>
+    <span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">BOOST_CHECK</span><span class="special">(</span>
+    <span class="number">20</span> <span class="special">==</span> <span class="identifier">get</span><span class="special">(</span>
+        <span class="special">*</span><span class="identifier">binary_descendant</span><span class="special">(&</span><span class="identifier">gui_root</span><span class="special">,</span> <span class="number">52</span><span class="special">,</span> <span class="identifier">GUIBinaryCompare</span><span class="special">())</span>
+      <span class="special">,</span> <span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">()</span>
+    <span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">BOOST_CHECK</span><span class="special">(</span>
+    <span class="number">22</span> <span class="special">==</span> <span class="identifier">get</span><span class="special">(</span>
+        <span class="special">*</span><span class="identifier">binary_descendant</span><span class="special">(&</span><span class="identifier">gui_root</span><span class="special">,</span> <span class="number">53</span><span class="special">,</span> <span class="identifier">GUIBinaryCompare</span><span class="special">())</span>
+      <span class="special">,</span> <span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">()</span>
+    <span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">BOOST_CHECK</span><span class="special">(</span>
+    <span class="number">22</span> <span class="special">==</span> <span class="identifier">get</span><span class="special">(</span>
+        <span class="special">*</span><span class="identifier">binary_descendant</span><span class="special">(&</span><span class="identifier">gui_root</span><span class="special">,</span> <span class="number">54</span><span class="special">,</span> <span class="identifier">GUIBinaryCompare</span><span class="special">())</span>
+      <span class="special">,</span> <span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">()</span>
+    <span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">BOOST_CHECK</span><span class="special">(</span>
+    <span class="number">22</span> <span class="special">==</span> <span class="identifier">get</span><span class="special">(</span>
+        <span class="special">*</span><span class="identifier">binary_descendant</span><span class="special">(&</span><span class="identifier">gui_root</span><span class="special">,</span> <span class="number">55</span><span class="special">,</span> <span class="identifier">GUIBinaryCompare</span><span class="special">())</span>
+      <span class="special">,</span> <span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">()</span>
+    <span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">BOOST_CHECK</span><span class="special">(</span>
+    <span class="number">22</span> <span class="special">==</span> <span class="identifier">get</span><span class="special">(</span>
+        <span class="special">*</span><span class="identifier">binary_descendant</span><span class="special">(&</span><span class="identifier">gui_root</span><span class="special">,</span> <span class="number">56</span><span class="special">,</span> <span class="identifier">GUIBinaryCompare</span><span class="special">())</span>
+      <span class="special">,</span> <span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">()</span>
+    <span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">BOOST_CHECK</span><span class="special">(</span>
+    <span class="number">22</span> <span class="special">==</span> <span class="identifier">get</span><span class="special">(</span>
+        <span class="special">*</span><span class="identifier">binary_descendant</span><span class="special">(&</span><span class="identifier">gui_root</span><span class="special">,</span> <span class="number">57</span><span class="special">,</span> <span class="identifier">GUIBinaryCompare</span><span class="special">())</span>
+      <span class="special">,</span> <span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">()</span>
+    <span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">BOOST_CHECK</span><span class="special">(</span>
+    <span class="number">22</span> <span class="special">==</span> <span class="identifier">get</span><span class="special">(</span>
+        <span class="special">*</span><span class="identifier">binary_descendant</span><span class="special">(&</span><span class="identifier">gui_root</span><span class="special">,</span> <span class="number">58</span><span class="special">,</span> <span class="identifier">GUIBinaryCompare</span><span class="special">())</span>
+      <span class="special">,</span> <span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">()</span>
+    <span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">BOOST_CHECK</span><span class="special">(</span>
+    <span class="number">22</span> <span class="special">==</span> <span class="identifier">get</span><span class="special">(</span>
+        <span class="special">*</span><span class="identifier">binary_descendant</span><span class="special">(&</span><span class="identifier">gui_root</span><span class="special">,</span> <span class="number">59</span><span class="special">,</span> <span class="identifier">GUIBinaryCompare</span><span class="special">())</span>
+      <span class="special">,</span> <span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">()</span>
+    <span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">BOOST_CHECK</span><span class="special">(</span>
+    <span class="number">22</span> <span class="special">==</span> <span class="identifier">get</span><span class="special">(</span>
+        <span class="special">*</span><span class="identifier">binary_descendant</span><span class="special">(&</span><span class="identifier">gui_root</span><span class="special">,</span> <span class="number">60</span><span class="special">,</span> <span class="identifier">GUIBinaryCompare</span><span class="special">())</span>
+      <span class="special">,</span> <span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">()</span>
+    <span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">BOOST_CHECK</span><span class="special">(</span>
+    <span class="number">22</span> <span class="special">==</span> <span class="identifier">get</span><span class="special">(</span>
+        <span class="special">*</span><span class="identifier">binary_descendant</span><span class="special">(&</span><span class="identifier">gui_root</span><span class="special">,</span> <span class="number">61</span><span class="special">,</span> <span class="identifier">GUIBinaryCompare</span><span class="special">())</span>
+      <span class="special">,</span> <span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">()</span>
+    <span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">BOOST_CHECK</span><span class="special">(</span>
+    <span class="number">22</span> <span class="special">==</span> <span class="identifier">get</span><span class="special">(</span>
+        <span class="special">*</span><span class="identifier">binary_descendant</span><span class="special">(&</span><span class="identifier">gui_root</span><span class="special">,</span> <span class="number">62</span><span class="special">,</span> <span class="identifier">GUIBinaryCompare</span><span class="special">())</span>
+      <span class="special">,</span> <span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">()</span>
+    <span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">BOOST_CHECK</span><span class="special">(</span>
+    <span class="number">22</span> <span class="special">==</span> <span class="identifier">get</span><span class="special">(</span>
+        <span class="special">*</span><span class="identifier">binary_descendant</span><span class="special">(&</span><span class="identifier">gui_root</span><span class="special">,</span> <span class="number">63</span><span class="special">,</span> <span class="identifier">GUIBinaryCompare</span><span class="special">())</span>
+      <span class="special">,</span> <span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">()</span>
+    <span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">BOOST_CHECK</span><span class="special">(</span>
+    <span class="number">42</span> <span class="special">==</span> <span class="identifier">get</span><span class="special">(</span>
+        <span class="special">*</span><span class="identifier">binary_descendant</span><span class="special">(&</span><span class="identifier">gui_root</span><span class="special">,</span> <span class="number">64</span><span class="special">,</span> <span class="identifier">GUIBinaryCompare</span><span class="special">())</span>
+      <span class="special">,</span> <span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">()</span>
+    <span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">BOOST_CHECK</span><span class="special">(</span>
+    <span class="number">42</span> <span class="special">==</span> <span class="identifier">get</span><span class="special">(</span>
+        <span class="special">*</span><span class="identifier">binary_descendant</span><span class="special">(&</span><span class="identifier">gui_root</span><span class="special">,</span> <span class="number">65</span><span class="special">,</span> <span class="identifier">GUIBinaryCompare</span><span class="special">())</span>
+      <span class="special">,</span> <span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">()</span>
+    <span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">BOOST_CHECK</span><span class="special">(</span>
+    <span class="number">42</span> <span class="special">==</span> <span class="identifier">get</span><span class="special">(</span>
+        <span class="special">*</span><span class="identifier">binary_descendant</span><span class="special">(&</span><span class="identifier">gui_root</span><span class="special">,</span> <span class="number">66</span><span class="special">,</span> <span class="identifier">GUIBinaryCompare</span><span class="special">())</span>
+      <span class="special">,</span> <span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">()</span>
+    <span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">BOOST_CHECK</span><span class="special">(</span>
+    <span class="number">42</span> <span class="special">==</span> <span class="identifier">get</span><span class="special">(</span>
+        <span class="special">*</span><span class="identifier">binary_descendant</span><span class="special">(&</span><span class="identifier">gui_root</span><span class="special">,</span> <span class="number">67</span><span class="special">,</span> <span class="identifier">GUIBinaryCompare</span><span class="special">())</span>
+      <span class="special">,</span> <span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">()</span>
+    <span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">BOOST_CHECK</span><span class="special">(</span>
+    <span class="number">42</span> <span class="special">==</span> <span class="identifier">get</span><span class="special">(</span>
+        <span class="special">*</span><span class="identifier">binary_descendant</span><span class="special">(&</span><span class="identifier">gui_root</span><span class="special">,</span> <span class="number">68</span><span class="special">,</span> <span class="identifier">GUIBinaryCompare</span><span class="special">())</span>
+      <span class="special">,</span> <span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">()</span>
+    <span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">BOOST_CHECK</span><span class="special">(</span>
+    <span class="number">42</span> <span class="special">==</span> <span class="identifier">get</span><span class="special">(</span>
+        <span class="special">*</span><span class="identifier">binary_descendant</span><span class="special">(&</span><span class="identifier">gui_root</span><span class="special">,</span> <span class="number">69</span><span class="special">,</span> <span class="identifier">GUIBinaryCompare</span><span class="special">())</span>
+      <span class="special">,</span> <span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">()</span>
+    <span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">BOOST_CHECK</span><span class="special">(</span>
+    <span class="number">42</span> <span class="special">==</span> <span class="identifier">get</span><span class="special">(</span>
+        <span class="special">*</span><span class="identifier">binary_descendant</span><span class="special">(&</span><span class="identifier">gui_root</span><span class="special">,</span> <span class="number">70</span><span class="special">,</span> <span class="identifier">GUIBinaryCompare</span><span class="special">())</span>
+      <span class="special">,</span> <span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">()</span>
+    <span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">BOOST_CHECK</span><span class="special">(</span>
+    <span class="number">42</span> <span class="special">==</span> <span class="identifier">get</span><span class="special">(</span>
+        <span class="special">*</span><span class="identifier">binary_descendant</span><span class="special">(&</span><span class="identifier">gui_root</span><span class="special">,</span> <span class="number">71</span><span class="special">,</span> <span class="identifier">GUIBinaryCompare</span><span class="special">())</span>
+      <span class="special">,</span> <span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">()</span>
+    <span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">BOOST_CHECK</span><span class="special">(</span>
+    <span class="number">42</span> <span class="special">==</span> <span class="identifier">get</span><span class="special">(</span>
+        <span class="special">*</span><span class="identifier">binary_descendant</span><span class="special">(&</span><span class="identifier">gui_root</span><span class="special">,</span> <span class="number">72</span><span class="special">,</span> <span class="identifier">GUIBinaryCompare</span><span class="special">())</span>
+      <span class="special">,</span> <span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">()</span>
+    <span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">BOOST_CHECK</span><span class="special">(</span>
+    <span class="number">42</span> <span class="special">==</span> <span class="identifier">get</span><span class="special">(</span>
+        <span class="special">*</span><span class="identifier">binary_descendant</span><span class="special">(&</span><span class="identifier">gui_root</span><span class="special">,</span> <span class="number">73</span><span class="special">,</span> <span class="identifier">GUIBinaryCompare</span><span class="special">())</span>
+      <span class="special">,</span> <span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">()</span>
+    <span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">BOOST_CHECK</span><span class="special">(</span>
+    <span class="number">42</span> <span class="special">==</span> <span class="identifier">get</span><span class="special">(</span>
+        <span class="special">*</span><span class="identifier">binary_descendant</span><span class="special">(&</span><span class="identifier">gui_root</span><span class="special">,</span> <span class="number">74</span><span class="special">,</span> <span class="identifier">GUIBinaryCompare</span><span class="special">())</span>
+      <span class="special">,</span> <span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">()</span>
+    <span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">BOOST_CHECK</span><span class="special">(</span>
+    <span class="number">42</span> <span class="special">==</span> <span class="identifier">get</span><span class="special">(</span>
+        <span class="special">*</span><span class="identifier">binary_descendant</span><span class="special">(&</span><span class="identifier">gui_root</span><span class="special">,</span> <span class="number">75</span><span class="special">,</span> <span class="identifier">GUIBinaryCompare</span><span class="special">())</span>
+      <span class="special">,</span> <span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">()</span>
+    <span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">BOOST_CHECK</span><span class="special">(</span>
+    <span class="number">42</span> <span class="special">==</span> <span class="identifier">get</span><span class="special">(</span>
+        <span class="special">*</span><span class="identifier">binary_descendant</span><span class="special">(&</span><span class="identifier">gui_root</span><span class="special">,</span> <span class="number">76</span><span class="special">,</span> <span class="identifier">GUIBinaryCompare</span><span class="special">())</span>
+      <span class="special">,</span> <span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">()</span>
+    <span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">BOOST_CHECK</span><span class="special">(</span>
+    <span class="number">51</span> <span class="special">==</span> <span class="identifier">get</span><span class="special">(</span>
+        <span class="special">*</span><span class="identifier">binary_descendant</span><span class="special">(&</span><span class="identifier">gui_root</span><span class="special">,</span> <span class="number">77</span><span class="special">,</span> <span class="identifier">GUIBinaryCompare</span><span class="special">())</span>
+      <span class="special">,</span> <span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">()</span>
+    <span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">BOOST_CHECK</span><span class="special">(</span>
+    <span class="number">51</span> <span class="special">==</span> <span class="identifier">get</span><span class="special">(</span>
+        <span class="special">*</span><span class="identifier">binary_descendant</span><span class="special">(&</span><span class="identifier">gui_root</span><span class="special">,</span> <span class="number">78</span><span class="special">,</span> <span class="identifier">GUIBinaryCompare</span><span class="special">())</span>
+      <span class="special">,</span> <span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">()</span>
+    <span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">BOOST_CHECK</span><span class="special">(</span>
+    <span class="number">51</span> <span class="special">==</span> <span class="identifier">get</span><span class="special">(</span>
+        <span class="special">*</span><span class="identifier">binary_descendant</span><span class="special">(&</span><span class="identifier">gui_root</span><span class="special">,</span> <span class="number">79</span><span class="special">,</span> <span class="identifier">GUIBinaryCompare</span><span class="special">())</span>
+      <span class="special">,</span> <span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">()</span>
+    <span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">BOOST_CHECK</span><span class="special">(</span>
+    <span class="number">51</span> <span class="special">==</span> <span class="identifier">get</span><span class="special">(</span>
+        <span class="special">*</span><span class="identifier">binary_descendant</span><span class="special">(&</span><span class="identifier">gui_root</span><span class="special">,</span> <span class="number">80</span><span class="special">,</span> <span class="identifier">GUIBinaryCompare</span><span class="special">())</span>
+      <span class="special">,</span> <span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">()</span>
+    <span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">BOOST_CHECK</span><span class="special">(</span>
+    <span class="number">51</span> <span class="special">==</span> <span class="identifier">get</span><span class="special">(</span>
+        <span class="special">*</span><span class="identifier">binary_descendant</span><span class="special">(&</span><span class="identifier">gui_root</span><span class="special">,</span> <span class="number">81</span><span class="special">,</span> <span class="identifier">GUIBinaryCompare</span><span class="special">())</span>
+      <span class="special">,</span> <span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">()</span>
+    <span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">BOOST_CHECK</span><span class="special">(</span>
+    <span class="number">51</span> <span class="special">==</span> <span class="identifier">get</span><span class="special">(</span>
+        <span class="special">*</span><span class="identifier">binary_descendant</span><span class="special">(&</span><span class="identifier">gui_root</span><span class="special">,</span> <span class="number">82</span><span class="special">,</span> <span class="identifier">GUIBinaryCompare</span><span class="special">())</span>
+      <span class="special">,</span> <span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">()</span>
+    <span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">BOOST_CHECK</span><span class="special">(</span>
+    <span class="number">51</span> <span class="special">==</span> <span class="identifier">get</span><span class="special">(</span>
+        <span class="special">*</span><span class="identifier">binary_descendant</span><span class="special">(&</span><span class="identifier">gui_root</span><span class="special">,</span> <span class="number">83</span><span class="special">,</span> <span class="identifier">GUIBinaryCompare</span><span class="special">())</span>
+      <span class="special">,</span> <span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">()</span>
+    <span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">BOOST_CHECK</span><span class="special">(</span>
+    <span class="number">51</span> <span class="special">==</span> <span class="identifier">get</span><span class="special">(</span>
+        <span class="special">*</span><span class="identifier">binary_descendant</span><span class="special">(&</span><span class="identifier">gui_root</span><span class="special">,</span> <span class="number">84</span><span class="special">,</span> <span class="identifier">GUIBinaryCompare</span><span class="special">())</span>
+      <span class="special">,</span> <span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">()</span>
+    <span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">BOOST_CHECK</span><span class="special">(</span>
+    <span class="number">51</span> <span class="special">==</span> <span class="identifier">get</span><span class="special">(</span>
+        <span class="special">*</span><span class="identifier">binary_descendant</span><span class="special">(&</span><span class="identifier">gui_root</span><span class="special">,</span> <span class="number">85</span><span class="special">,</span> <span class="identifier">GUIBinaryCompare</span><span class="special">())</span>
+      <span class="special">,</span> <span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">()</span>
+    <span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">BOOST_CHECK</span><span class="special">(</span>
+    <span class="number">51</span> <span class="special">==</span> <span class="identifier">get</span><span class="special">(</span>
+        <span class="special">*</span><span class="identifier">binary_descendant</span><span class="special">(&</span><span class="identifier">gui_root</span><span class="special">,</span> <span class="number">86</span><span class="special">,</span> <span class="identifier">GUIBinaryCompare</span><span class="special">())</span>
+      <span class="special">,</span> <span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">()</span>
+    <span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">BOOST_CHECK</span><span class="special">(</span>
+    <span class="number">51</span> <span class="special">==</span> <span class="identifier">get</span><span class="special">(</span>
+        <span class="special">*</span><span class="identifier">binary_descendant</span><span class="special">(&</span><span class="identifier">gui_root</span><span class="special">,</span> <span class="number">87</span><span class="special">,</span> <span class="identifier">GUIBinaryCompare</span><span class="special">())</span>
+      <span class="special">,</span> <span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">()</span>
+    <span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">BOOST_CHECK</span><span class="special">(</span>
+    <span class="number">55</span> <span class="special">==</span> <span class="identifier">get</span><span class="special">(</span>
+        <span class="special">*</span><span class="identifier">binary_descendant</span><span class="special">(&</span><span class="identifier">gui_root</span><span class="special">,</span> <span class="number">88</span><span class="special">,</span> <span class="identifier">GUIBinaryCompare</span><span class="special">())</span>
+      <span class="special">,</span> <span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">()</span>
+    <span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">BOOST_CHECK</span><span class="special">(</span>
+    <span class="number">55</span> <span class="special">==</span> <span class="identifier">get</span><span class="special">(</span>
+        <span class="special">*</span><span class="identifier">binary_descendant</span><span class="special">(&</span><span class="identifier">gui_root</span><span class="special">,</span> <span class="number">89</span><span class="special">,</span> <span class="identifier">GUIBinaryCompare</span><span class="special">())</span>
+      <span class="special">,</span> <span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">()</span>
+    <span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">BOOST_CHECK</span><span class="special">(</span>
+    <span class="number">55</span> <span class="special">==</span> <span class="identifier">get</span><span class="special">(</span>
+        <span class="special">*</span><span class="identifier">binary_descendant</span><span class="special">(&</span><span class="identifier">gui_root</span><span class="special">,</span> <span class="number">90</span><span class="special">,</span> <span class="identifier">GUIBinaryCompare</span><span class="special">())</span>
+      <span class="special">,</span> <span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">()</span>
+    <span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">BOOST_CHECK</span><span class="special">(</span>
+    <span class="number">55</span> <span class="special">==</span> <span class="identifier">get</span><span class="special">(</span>
+        <span class="special">*</span><span class="identifier">binary_descendant</span><span class="special">(&</span><span class="identifier">gui_root</span><span class="special">,</span> <span class="number">91</span><span class="special">,</span> <span class="identifier">GUIBinaryCompare</span><span class="special">())</span>
+      <span class="special">,</span> <span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">()</span>
+    <span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">BOOST_CHECK</span><span class="special">(</span>
+    <span class="number">55</span> <span class="special">==</span> <span class="identifier">get</span><span class="special">(</span>
+        <span class="special">*</span><span class="identifier">binary_descendant</span><span class="special">(&</span><span class="identifier">gui_root</span><span class="special">,</span> <span class="number">92</span><span class="special">,</span> <span class="identifier">GUIBinaryCompare</span><span class="special">())</span>
+      <span class="special">,</span> <span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">()</span>
+    <span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">BOOST_CHECK</span><span class="special">(</span>
+    <span class="number">55</span> <span class="special">==</span> <span class="identifier">get</span><span class="special">(</span>
+        <span class="special">*</span><span class="identifier">binary_descendant</span><span class="special">(&</span><span class="identifier">gui_root</span><span class="special">,</span> <span class="number">93</span><span class="special">,</span> <span class="identifier">GUIBinaryCompare</span><span class="special">())</span>
+      <span class="special">,</span> <span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">()</span>
+    <span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">BOOST_CHECK</span><span class="special">(</span>
+    <span class="number">55</span> <span class="special">==</span> <span class="identifier">get</span><span class="special">(</span>
+        <span class="special">*</span><span class="identifier">binary_descendant</span><span class="special">(&</span><span class="identifier">gui_root</span><span class="special">,</span> <span class="number">94</span><span class="special">,</span> <span class="identifier">GUIBinaryCompare</span><span class="special">())</span>
+      <span class="special">,</span> <span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">()</span>
+    <span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">BOOST_CHECK</span><span class="special">(</span>
+    <span class="number">55</span> <span class="special">==</span> <span class="identifier">get</span><span class="special">(</span>
+        <span class="special">*</span><span class="identifier">binary_descendant</span><span class="special">(&</span><span class="identifier">gui_root</span><span class="special">,</span> <span class="number">95</span><span class="special">,</span> <span class="identifier">GUIBinaryCompare</span><span class="special">())</span>
+      <span class="special">,</span> <span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">()</span>
+    <span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">BOOST_CHECK</span><span class="special">(</span>
+    <span class="number">55</span> <span class="special">==</span> <span class="identifier">get</span><span class="special">(</span>
+        <span class="special">*</span><span class="identifier">binary_descendant</span><span class="special">(&</span><span class="identifier">gui_root</span><span class="special">,</span> <span class="number">96</span><span class="special">,</span> <span class="identifier">GUIBinaryCompare</span><span class="special">())</span>
+      <span class="special">,</span> <span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">()</span>
+    <span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">BOOST_CHECK</span><span class="special">(</span>
+    <span class="number">55</span> <span class="special">==</span> <span class="identifier">get</span><span class="special">(</span>
+        <span class="special">*</span><span class="identifier">binary_descendant</span><span class="special">(&</span><span class="identifier">gui_root</span><span class="special">,</span> <span class="number">97</span><span class="special">,</span> <span class="identifier">GUIBinaryCompare</span><span class="special">())</span>
+      <span class="special">,</span> <span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">()</span>
+    <span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">BOOST_CHECK</span><span class="special">(</span>
+    <span class="number">55</span> <span class="special">==</span> <span class="identifier">get</span><span class="special">(</span>
+        <span class="special">*</span><span class="identifier">binary_descendant</span><span class="special">(&</span><span class="identifier">gui_root</span><span class="special">,</span> <span class="number">98</span><span class="special">,</span> <span class="identifier">GUIBinaryCompare</span><span class="special">())</span>
+      <span class="special">,</span> <span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">()</span>
+    <span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">BOOST_CHECK</span><span class="special">(</span>
+    <span class="number">55</span> <span class="special">==</span> <span class="identifier">get</span><span class="special">(</span>
+        <span class="special">*</span><span class="identifier">binary_descendant</span><span class="special">(&</span><span class="identifier">gui_root</span><span class="special">,</span> <span class="number">99</span><span class="special">,</span> <span class="identifier">GUIBinaryCompare</span><span class="special">())</span>
+      <span class="special">,</span> <span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">()</span>
+    <span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">BOOST_CHECK</span><span class="special">(</span>
+    <span class="number">55</span> <span class="special">==</span> <span class="identifier">get</span><span class="special">(</span>
+        <span class="special">*</span><span class="identifier">binary_descendant</span><span class="special">(&</span><span class="identifier">gui_root</span><span class="special">,</span> <span class="number">100</span><span class="special">,</span> <span class="identifier">GUIBinaryCompare</span><span class="special">())</span>
+      <span class="special">,</span> <span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">()</span>
+    <span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">BOOST_CHECK</span><span class="special">(</span>
+    <span class="number">59</span> <span class="special">==</span> <span class="identifier">get</span><span class="special">(</span>
+        <span class="special">*</span><span class="identifier">binary_descendant</span><span class="special">(&</span><span class="identifier">gui_root</span><span class="special">,</span> <span class="number">101</span><span class="special">,</span> <span class="identifier">GUIBinaryCompare</span><span class="special">())</span>
+      <span class="special">,</span> <span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">()</span>
+    <span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">BOOST_CHECK</span><span class="special">(</span>
+    <span class="number">59</span> <span class="special">==</span> <span class="identifier">get</span><span class="special">(</span>
+        <span class="special">*</span><span class="identifier">binary_descendant</span><span class="special">(&</span><span class="identifier">gui_root</span><span class="special">,</span> <span class="number">102</span><span class="special">,</span> <span class="identifier">GUIBinaryCompare</span><span class="special">())</span>
+      <span class="special">,</span> <span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">()</span>
+    <span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">BOOST_CHECK</span><span class="special">(</span>
+    <span class="number">59</span> <span class="special">==</span> <span class="identifier">get</span><span class="special">(</span>
+        <span class="special">*</span><span class="identifier">binary_descendant</span><span class="special">(&</span><span class="identifier">gui_root</span><span class="special">,</span> <span class="number">103</span><span class="special">,</span> <span class="identifier">GUIBinaryCompare</span><span class="special">())</span>
+      <span class="special">,</span> <span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">()</span>
+    <span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">BOOST_CHECK</span><span class="special">(</span>
+    <span class="number">59</span> <span class="special">==</span> <span class="identifier">get</span><span class="special">(</span>
+        <span class="special">*</span><span class="identifier">binary_descendant</span><span class="special">(&</span><span class="identifier">gui_root</span><span class="special">,</span> <span class="number">104</span><span class="special">,</span> <span class="identifier">GUIBinaryCompare</span><span class="special">())</span>
+      <span class="special">,</span> <span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">()</span>
+    <span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">BOOST_CHECK</span><span class="special">(</span>
+    <span class="number">59</span> <span class="special">==</span> <span class="identifier">get</span><span class="special">(</span>
+        <span class="special">*</span><span class="identifier">binary_descendant</span><span class="special">(&</span><span class="identifier">gui_root</span><span class="special">,</span> <span class="number">105</span><span class="special">,</span> <span class="identifier">GUIBinaryCompare</span><span class="special">())</span>
+      <span class="special">,</span> <span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">()</span>
+    <span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">BOOST_CHECK</span><span class="special">(</span>
+    <span class="number">59</span> <span class="special">==</span> <span class="identifier">get</span><span class="special">(</span>
+        <span class="special">*</span><span class="identifier">binary_descendant</span><span class="special">(&</span><span class="identifier">gui_root</span><span class="special">,</span> <span class="number">106</span><span class="special">,</span> <span class="identifier">GUIBinaryCompare</span><span class="special">())</span>
+      <span class="special">,</span> <span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">()</span>
+    <span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">BOOST_CHECK</span><span class="special">(</span>
+    <span class="number">59</span> <span class="special">==</span> <span class="identifier">get</span><span class="special">(</span>
+        <span class="special">*</span><span class="identifier">binary_descendant</span><span class="special">(&</span><span class="identifier">gui_root</span><span class="special">,</span> <span class="number">107</span><span class="special">,</span> <span class="identifier">GUIBinaryCompare</span><span class="special">())</span>
+      <span class="special">,</span> <span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">()</span>
+    <span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">BOOST_CHECK</span><span class="special">(</span>
+    <span class="number">59</span> <span class="special">==</span> <span class="identifier">get</span><span class="special">(</span>
+        <span class="special">*</span><span class="identifier">binary_descendant</span><span class="special">(&</span><span class="identifier">gui_root</span><span class="special">,</span> <span class="number">108</span><span class="special">,</span> <span class="identifier">GUIBinaryCompare</span><span class="special">())</span>
+      <span class="special">,</span> <span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">()</span>
+    <span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">BOOST_CHECK</span><span class="special">(</span>
+    <span class="number">59</span> <span class="special">==</span> <span class="identifier">get</span><span class="special">(</span>
+        <span class="special">*</span><span class="identifier">binary_descendant</span><span class="special">(&</span><span class="identifier">gui_root</span><span class="special">,</span> <span class="number">109</span><span class="special">,</span> <span class="identifier">GUIBinaryCompare</span><span class="special">())</span>
+      <span class="special">,</span> <span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">()</span>
+    <span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">BOOST_CHECK</span><span class="special">(</span>
+    <span class="number">59</span> <span class="special">==</span> <span class="identifier">get</span><span class="special">(</span>
+        <span class="special">*</span><span class="identifier">binary_descendant</span><span class="special">(&</span><span class="identifier">gui_root</span><span class="special">,</span> <span class="number">110</span><span class="special">,</span> <span class="identifier">GUIBinaryCompare</span><span class="special">())</span>
+      <span class="special">,</span> <span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">()</span>
+    <span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">BOOST_CHECK</span><span class="special">(</span>
+    <span class="number">59</span> <span class="special">==</span> <span class="identifier">get</span><span class="special">(</span>
+        <span class="special">*</span><span class="identifier">binary_descendant</span><span class="special">(&</span><span class="identifier">gui_root</span><span class="special">,</span> <span class="number">111</span><span class="special">,</span> <span class="identifier">GUIBinaryCompare</span><span class="special">())</span>
+      <span class="special">,</span> <span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">()</span>
+    <span class="special">)</span>
+<span class="special">);</span>
+</pre>
+<p>
+          The complete program source can be found here: <example/type_definitions.hpp>
+          and <test/binary_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-2013 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="assoc_node_base_gen.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="with_accumulation_gen.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/with_accumulation_base.html
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/with_accumulation_base.html	2013-07-07 14:52:52 EDT (Sun, 07 Jul 2013)	(r84977)
@@ -0,0 +1,1562 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>with_accumulation_base< Derived , BaseGenerator , T1 , T2 , Key , Tag , IncludesAllDescendants , IncludesRoot , Value ></title>
+<link rel="stylesheet" href="http://www.boost.org/doc/libs/release/doc/src/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.77.1">
+<link rel="home" href="../../index.html" title="Chapter 1. tree_node 0.5">
+<link rel="up" href="../reference.html" title="Reference">
+<link rel="prev" href="with_accumulation_gen.html" title="with_accumulation_gen<BaseGenerator>">
+<link rel="next" href="with_accumulation_base_gen.html" title="with_accumulation_base_gen<BaseGenerator>">
+</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="with_accumulation_gen.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="with_accumulation_base_gen.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="tree_node.reference.with_accumulation_base"></a><a class="link" href="with_accumulation_base.html" title="with_accumulation_base< Derived , BaseGenerator , T1 , T2 , Key , Tag , IncludesAllDescendants , IncludesRoot , Value >"><code class="computeroutput"><span class="identifier">with_accumulation_base</span><span class="special"><</span>
+      <span class="identifier">Derived</span> <span class="special">,</span>
+      <span class="identifier">BaseGenerator</span> <span class="special">,</span>
+      <span class="identifier">T1</span> <span class="special">,</span> <span class="identifier">T2</span> <span class="special">,</span> <span class="identifier">Key</span>
+      <span class="special">,</span> <span class="identifier">Tag</span> <span class="special">,</span> <span class="identifier">IncludesAllDescendants</span>
+      <span class="special">,</span> <span class="identifier">IncludesRoot</span>
+      <span class="special">,</span> <span class="identifier">Value</span>
+      <span class="special">></span></code> </a>
+</h3></div></div></div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.with_accumulation_base.description"></a><a class="link" href="with_accumulation_base.html#tree_node.reference.with_accumulation_base.description" title="Description">Description</a>
+</h4></div></div></div>
+<p>
+          The <a class="link" href="with_accumulation.html" title="with_accumulation<BaseGenerator,T1,T2,AccumulationKey>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">with_accumulation</span></code></a> class template
+          inherits its functionality from this class template. They differ only with
+          regard to template parameters: the <a class="link" href="with_accumulation.html" title="with_accumulation<BaseGenerator,T1,T2,AccumulationKey>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">with_accumulation</span></code></a> class template
+          is meant to be used directly as a data structure, while <code class="computeroutput"><span class="identifier">with_accumulation_base</span></code>
+          is more suitable as a base class template from which other <a class="link" href="../concepts/tree_node.html" title="Tree Node"><span class="bold"><strong>Tree Node</strong></span></a> adaptor class templates can derive
+          via the <a class="link" href="with_accumulation_base_gen.html" title="with_accumulation_base_gen<BaseGenerator>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">with_accumulation_base_gen</span></code></a> <a class="link" href="../concepts/base_type_generator.html" title="Base Type Generator"><span class="bold"><strong>Base
+          Type Generator</strong></span></a>.
+        </p>
+<div class="important"><table border="0" summary="Important">
+<tr>
+<td rowspan="2" align="center" valign="top" width="25"><img alt="[Important]" src="http://www.boost.org/doc/libs/release/doc/src/images/important.png"></td>
+<th align="left">Important</th>
+</tr>
+<tr><td align="left" valign="top"><p>
+            Optional Boost.Accumulators
+            parameters are currently unsupported. This may change once this data
+            structure can detect the availability of Boost.Parameter keywords used by Boost.Accumulators
+            features.
+          </p></td></tr>
+</table></div>
+<div class="important"><table border="0" summary="Important">
+<tr>
+<td rowspan="2" align="center" valign="top" width="25"><img alt="[Important]" src="http://www.boost.org/doc/libs/release/doc/src/images/important.png"></td>
+<th align="left">Important</th>
+</tr>
+<tr><td align="left" valign="top"><p>
+            Weighted samples are currently unsupported.
+          </p></td></tr>
+</table></div>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.with_accumulation_base.definition"></a><a class="link" href="with_accumulation_base.html#tree_node.reference.with_accumulation_base.definition" title="Where defined">Where
+        defined</a>
+</h4></div></div></div>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span>boost/tree_node/with_accumulation.hpp<span class="special">></span>
+</pre>
+<p>
+          Forward-declared:
+        </p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span>boost/tree_node/with_accumulation_fwd.hpp<span class="special">></span>
+</pre>
+<p>
+          To register under Boost.Typeof:
+        </p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span>boost/typeof/boost/tree_node/with_accumulation.hpp<span class="special">></span>
+</pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.with_accumulation_base.tpl_param"></a><a class="link" href="with_accumulation_base.html#tree_node.reference.with_accumulation_base.tpl_param" title="Template Parameters">Template
+        Parameters</a>
+</h4></div></div></div>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+                  <p>
+                    Parameter
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Description
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Requirements
+                  </p>
+                </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">Derived</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    The most descendant type that will inherit from this one.
+                  </p>
+                </td>
+<td>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">BaseGenerator</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    The <a class="link" href="../concepts/base_type_generator.html" title="Base Type Generator"><span class="bold"><strong>Base Type Generator</strong></span></a> from whose
+                    return type <code class="computeroutput"><span class="identifier">with_accumulation_base</span></code>
+                    will inherit.
+                  </p>
+                </td>
+<td>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">T1</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    The key type if <code class="computeroutput"><span class="identifier">T2</span></code>
+                    is not <code class="computeroutput"><span class="keyword">void</span></code>; the
+                    user data type otherwise.
+                  </p>
+                </td>
+<td>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">T2</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    The user data type if not <code class="computeroutput"><span class="keyword">void</span></code>;
+                    ignored otherwise.
+                  </p>
+                </td>
+<td>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">Key</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    The key type associated with the value on which this <a class="link" href="../concepts/tree_node.html" title="Tree Node"><span class="bold"><strong>Tree Node</strong></span></a> adaptor will perform
+                    statistical computations.
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="literal"><a class="link" href="has_key.html" title="has_key()">tree_node::has_key</a><Key>(base)</code>
+                    must return <code class="computeroutput"><span class="keyword">true</span></code>
+                    for some object <code class="computeroutput"><span class="identifier">base</span></code>
+                    of the return type of <code class="computeroutput"><span class="identifier">BaseGenerator</span></code>.
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">Tag</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    The type that determines what this <a class="link" href="../concepts/tree_node.html" title="Tree Node"><span class="bold"><strong>Tree Node</strong></span></a> adaptor will compute.
+                  </p>
+                </td>
+<td>
+                  <p>
+                    It must be a valid Boost.Accumulators feature.
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">IncludesAllDescendants</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    A Boolean Integral Constant that
+                    determines whether this <a class="link" href="../concepts/tree_node.html" title="Tree Node"><span class="bold"><strong>Tree Node</strong></span></a> adaptor will involve
+                    all descendants (if set to boost::mpl::true_) or just the
+                    immediate children (if set to boost::mpl::false_) in its computations.
+                  </p>
+                </td>
+<td>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">IncludesRoot</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    A Boolean Integral Constant that
+                    determines whether or not this <a class="link" href="../concepts/tree_node.html" title="Tree Node"><span class="bold"><strong>Tree Node</strong></span></a> adaptor will include
+                    the value of the root node in its computations.
+                  </p>
+                </td>
+<td>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">Value</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    The type of the result of the computation performed by this
+                    <a class="link" href="../concepts/tree_node.html" title="Tree Node"><span class="bold"><strong>Tree
+                    Node</strong></span></a> adaptor if specified; ignored if <code class="computeroutput"><span class="keyword">void</span></code>.
+                  </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.with_accumulation_base.model_of"></a><a class="link" href="with_accumulation_base.html#tree_node.reference.with_accumulation_base.model_of" title="Model of">Model
+        of</a>
+</h4></div></div></div>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem"><p>
+              <a class="link" href="../concepts/associative_tree_node.html" title="Associative Tree Node"><span class="bold"><strong>Associative Tree Node</strong></span></a> if <code class="computeroutput"><span class="identifier">T2</span></code> is specified; <a class="link" href="../concepts/non_assoc_tree_node.html" title="Non-Associative Tree Node"><span class="bold"><strong>Non-Associative Tree Node</strong></span></a> otherwise
+            </p></li>
+<li class="listitem"><p>
+              <a class="link" href="../concepts/base_tree_node.html" title="Base Tree Node"><span class="bold"><strong>Base
+              Tree Node</strong></span></a>
+            </p></li>
+<li class="listitem"><p>
+              any other concept that the return type of <code class="computeroutput"><span class="identifier">BaseGenerator</span></code>
+              models
+            </p></li>
+</ul></div>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.with_accumulation_base.public_bases"></a><a class="link" href="with_accumulation_base.html#tree_node.reference.with_accumulation_base.public_bases" title="Public Base Classes">Public
+        Base Classes</a>
+</h4></div></div></div>
+<pre class="programlisting"><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">eval_if</span><span class="special"><</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">is_void</span><span class="special"><</span><span class="identifier">T2</span><span class="special">></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">apply_wrap2</span><span class="special"><</span><span class="identifier">BaseGenerator</span><span class="special">,</span><span class="identifier">Derived</span><span class="special">,</span><span class="identifier">T1</span><span class="special">></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">apply_wrap3</span><span class="special"><</span><span class="identifier">BaseGenerator</span><span class="special">,</span><span class="identifier">Derived</span><span class="special">,</span><span class="identifier">T1</span><span class="special">,</span><span class="identifier">T2</span><span class="special">></span>
+<span class="special">>::</span><span class="identifier">type</span>
+</pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.with_accumulation_base.members"></a><a class="link" href="with_accumulation_base.html#tree_node.reference.with_accumulation_base.members" title="Members">Members</a>
+</h4></div></div></div>
+<p>
+          In addition to those inherited from the return type of <code class="computeroutput"><span class="identifier">BaseGenerator</span></code>,
+          the following members are defined:
+        </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+                  <p>
+                    Name
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Definition
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Scope
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Description
+                  </p>
+                </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+                  <p>
+                    Emplacement constructor
+                  </p>
+                </td>
+<td>
+<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="special">...</span><span class="identifier">Args</span><span class="special">></span>
+<span class="keyword">explicit</span> <span class="identifier">with_accumulation_base</span><span class="special">(</span><span class="identifier">Args</span><span class="special">&&</span> <span class="special">...</span><span class="identifier">args</span><span class="special">);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">protected</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>
+                    Emplacement constructor with allocator
+                  </p>
+                </td>
+<td>
+<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="special">...</span><span class="identifier">Args</span><span class="special">></span>
+<span class="keyword">explicit</span> <span class="identifier">with_accumulation_base</span><span class="special">(</span>
+    <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">container</span><span class="special">::</span><span class="identifier">allocator_arg_t</span>
+  <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">traits</span><span class="special">::</span><span class="identifier">allocator_reference</span> <span class="identifier">allocator</span>
+  <span class="special">,</span> <span class="identifier">Args</span><span class="special">&&</span> <span class="special">...</span><span class="identifier">args</span>
+<span class="special">);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">protected</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>
+                    Derived copy constructor
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">with_accumulation_base</span><span class="special">(</span><span class="identifier">Derived</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">copy</span><span class="special">);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">protected</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Defined by the <a class="link" href="../concepts/base_tree_node.html" title="Base Tree Node"><span class="bold"><strong>Base Tree Node</strong></span></a> concept.
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Derived copy constructor with allocator
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">with_accumulation_base</span><span class="special">(</span>
+    <span class="identifier">Derived</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">copy</span>
+  <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">traits</span><span class="special">::</span><span class="identifier">allocator_reference</span> <span class="identifier">allocator</span>
+<span class="special">);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">protected</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Defined by the <a class="link" href="../concepts/base_tree_node.html" title="Base Tree Node"><span class="bold"><strong>Base Tree Node</strong></span></a> concept.
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Derived move constructor
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">with_accumulation_base</span><span class="special">(</span><span class="identifier">Derived</span><span class="special">&&);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">protected</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Defined by the <a class="link" href="../concepts/base_tree_node.html" title="Base Tree Node"><span class="bold"><strong>Base Tree Node</strong></span></a> concept.
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Derived move constructor with allocator
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">with_accumulation_base</span><span class="special">(</span>
+    <span class="identifier">Derived</span><span class="special">&&</span> <span class="identifier">source</span>
+  <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">traits</span><span class="special">::</span><span class="identifier">allocator_reference</span> <span class="identifier">allocator</span>
+<span class="special">);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">protected</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Defined by the <a class="link" href="../concepts/base_tree_node.html" title="Base Tree Node"><span class="bold"><strong>Base Tree Node</strong></span></a> concept.
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Accumulation member read-only access
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">typename</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">eval_if</span><span class="special"><</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">is_void</span><span class="special"><</span><span class="identifier">Value</span><span class="special">></span>
+  <span class="special">,</span> <span class="identifier">result_of</span><span class="special">::</span><span class="identifier">value_at_key</span><span class="special"><</span>
+        <span class="identifier">with_accumulation_base</span><span class="special"><</span>
+            <span class="identifier">Derived</span>
+          <span class="special">,</span> <span class="identifier">BaseGenerator</span>
+          <span class="special">,</span> <span class="identifier">T1</span>
+          <span class="special">,</span> <span class="identifier">T2</span>
+          <span class="special">,</span> <span class="identifier">Key</span>
+          <span class="special">,</span> <span class="identifier">Tag</span>
+          <span class="special">,</span> <span class="identifier">IncludesAllDescendants</span>
+          <span class="special">,</span> <span class="identifier">IncludesRoot</span>
+          <span class="special">,</span> <span class="identifier">Value</span>
+        <span class="special">></span>
+      <span class="special">,</span> <span class="identifier">Key</span>
+    <span class="special">></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">identity</span><span class="special"><</span><span class="identifier">Value</span><span class="special">></span>
+<span class="special">>::</span><span class="identifier">type</span> <span class="keyword">const</span><span class="special">&</span>
+    <span class="keyword">operator</span><span class="special">[](</span>
+        <span class="identifier">accumulation_key</span><span class="special"><</span>
+            <span class="identifier">Key</span>
+          <span class="special">,</span> <span class="identifier">Tag</span>
+          <span class="special">,</span> <span class="identifier">IncludesAllDescendants</span>
+          <span class="special">,</span> <span class="identifier">IncludesRoot</span>
+          <span class="special">,</span> <span class="identifier">Value</span>
+        <span class="special">></span> <span class="keyword">const</span><span class="special">&</span>
+    <span class="special">)</span>
+    <span class="keyword">const</span><span class="special">;</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">public</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Returns the accumulated value of the statistical computations
+                    performed by this <a class="link" href="../concepts/tree_node.html" title="Tree Node"><span class="bold"><strong>Tree Node</strong></span></a> adaptor.
+                  </p>
+                </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.with_accumulation_base.non_members"></a><a class="link" href="with_accumulation_base.html#tree_node.reference.with_accumulation_base.non_members" title="Non-members">Non-members</a>
+</h4></div></div></div>
+<p>
+          In addition to those inherited from the return type of <code class="computeroutput"><span class="identifier">BaseGenerator</span></code>,
+          the following non-members are defined.
+        </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+                  <p>
+                    Name
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Definition
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Where defined
+                  </p>
+                </th>
+</tr></thead>
+<tbody><tr>
+<td>
+                  <p>
+                    Accumulation key-value read-only access
+                  </p>
+                </td>
+<td>
+<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">Derived</span>
+      <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">BaseGenerator</span>
+      <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">T1</span>
+      <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">T2</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">Tag</span>
+      <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">IncludesAllDescendants</span>
+      <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">IncludesRoot</span>
+      <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Value</span>
+      <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">AccumulationKey</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">std</span><span class="special">::</span><span class="identifier">tr1</span><span class="special">::</span><span class="identifier">is_same</span><span class="special"><</span>
+            <span class="identifier">accumulation_key</span><span class="special"><</span><span class="identifier">Key</span><span class="special">,</span><span class="identifier">Tag</span><span class="special">,</span><span class="identifier">IncludesAllDescendants</span><span class="special">,</span><span class="identifier">IncludesRoot</span><span class="special">,</span><span class="identifier">Value</span><span class="special">></span>
+          <span class="special">,</span> <span class="identifier">AccumulationKey</span>
+        <span class="special">></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">mpl</span><span class="special">::</span><span class="identifier">eval_if</span><span class="special"><</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">is_void</span><span class="special"><</span><span class="identifier">Value</span><span class="special">></span>
+          <span class="special">,</span> <span class="identifier">result_of</span><span class="special">::</span><span class="identifier">value_at_key</span><span class="special"><</span>
+                <span class="identifier">with_accumulation_base</span><span class="special"><</span>
+                    <span class="identifier">Derived</span>
+                  <span class="special">,</span> <span class="identifier">BaseGenerator</span>
+                  <span class="special">,</span> <span class="identifier">T1</span>
+                  <span class="special">,</span> <span class="identifier">T2</span>
+                  <span class="special">,</span> <span class="identifier">Key</span>
+                  <span class="special">,</span> <span class="identifier">Tag</span>
+                  <span class="special">,</span> <span class="identifier">IncludesAllDescendants</span>
+                  <span class="special">,</span> <span class="identifier">IncludesRoot</span>
+                  <span class="special">,</span> <span class="identifier">Value</span>
+                <span class="special">></span>
+              <span class="special">,</span> <span class="identifier">Key</span>
+            <span class="special">></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">identity</span><span class="special"><</span><span class="identifier">Value</span><span class="special">></span>
+        <span class="special">>::</span><span class="identifier">type</span> <span class="keyword">const</span><span class="special">&</span>
+    <span class="special">>::</span><span class="identifier">type</span>
+        <span class="identifier">get</span><span class="special">(</span>
+            <span class="identifier">with_accumulation_base</span><span class="special"><</span>
+                <span class="identifier">Derived</span>
+              <span class="special">,</span> <span class="identifier">BaseGenerator</span>
+              <span class="special">,</span> <span class="identifier">T1</span>
+              <span class="special">,</span> <span class="identifier">T2</span>
+              <span class="special">,</span> <span class="identifier">Key</span>
+              <span class="special">,</span> <span class="identifier">Tag</span>
+              <span class="special">,</span> <span class="identifier">IncludesAllDescendants</span>
+              <span class="special">,</span> <span class="identifier">IncludesRoot</span>
+              <span class="special">,</span> <span class="identifier">Value</span>
+            <span class="special">></span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">node</span>
+          <span class="special">,</span> <span class="identifier">AccumulationKey</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">key</span>
+        <span class="special">);</span>
+
+    <span class="keyword">template</span> <span class="special"><</span>
+        <span class="keyword">typename</span> <span class="identifier">AccumulationKey</span>
+      <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Derived</span>
+      <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">BaseGenerator</span>
+      <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">T1</span>
+      <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">T2</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">Tag</span>
+      <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">IncludesAllDescendants</span>
+      <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">IncludesRoot</span>
+      <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Value</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">std</span><span class="special">::</span><span class="identifier">tr1</span><span class="special">::</span><span class="identifier">is_same</span><span class="special"><</span>
+            <span class="identifier">accumulation_key</span><span class="special"><</span><span class="identifier">Key</span><span class="special">,</span><span class="identifier">Tag</span><span class="special">,</span><span class="identifier">IncludesAllDescendants</span><span class="special">,</span><span class="identifier">IncludesRoot</span><span class="special">,</span><span class="identifier">Value</span><span class="special">></span>
+          <span class="special">,</span> <span class="identifier">AccumulationKey</span>
+        <span class="special">></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">mpl</span><span class="special">::</span><span class="identifier">eval_if</span><span class="special"><</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">is_void</span><span class="special"><</span><span class="identifier">Value</span><span class="special">></span>
+          <span class="special">,</span> <span class="identifier">result_of</span><span class="special">::</span><span class="identifier">value_at_key</span><span class="special"><</span>
+                <span class="identifier">with_accumulation_base</span><span class="special"><</span>
+                    <span class="identifier">Derived</span>
+                  <span class="special">,</span> <span class="identifier">BaseGenerator</span>
+                  <span class="special">,</span> <span class="identifier">T1</span>
+                  <span class="special">,</span> <span class="identifier">T2</span>
+                  <span class="special">,</span> <span class="identifier">Key</span>
+                  <span class="special">,</span> <span class="identifier">Tag</span>
+                  <span class="special">,</span> <span class="identifier">IncludesAllDescendants</span>
+                  <span class="special">,</span> <span class="identifier">IncludesRoot</span>
+                  <span class="special">,</span> <span class="identifier">Value</span>
+                <span class="special">></span>
+              <span class="special">,</span> <span class="identifier">Key</span>
+            <span class="special">></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">identity</span><span class="special"><</span><span class="identifier">Value</span><span class="special">></span>
+        <span class="special">>::</span><span class="identifier">type</span> <span class="keyword">const</span><span class="special">&</span>
+    <span class="special">>::</span><span class="identifier">type</span>
+        <span class="identifier">get</span><span class="special">(</span>
+            <span class="identifier">with_accumulation_base</span><span class="special"><</span>
+                <span class="identifier">Derived</span>
+              <span class="special">,</span> <span class="identifier">BaseGenerator</span>
+              <span class="special">,</span> <span class="identifier">T1</span>
+              <span class="special">,</span> <span class="identifier">T2</span>
+              <span class="special">,</span> <span class="identifier">Key</span>
+              <span class="special">,</span> <span class="identifier">Tag</span>
+              <span class="special">,</span> <span class="identifier">IncludesAllDescendants</span>
+              <span class="special">,</span> <span class="identifier">IncludesRoot</span>
+              <span class="special">,</span> <span class="identifier">Value</span>
+            <span class="special">></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>
+                </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.with_accumulation_base.example"></a><a class="link" href="with_accumulation_base.html#tree_node.reference.with_accumulation_base.example" title="Example">Example</a>
+</h4></div></div></div>
+<p>
+          A GUI application that renders row numbers needs to know, in sublinear
+          time, which variable-height row numbers should be rendered on-screen. Independently,
+          the application must also compute the minimum priority of each row number
+          in terms of its own priority and that of its sub-rows.
+        </p>
+<p>
+          <code class="computeroutput"><span class="identifier">GUITable</span></code> associates the
+          example key types with the user data that our program will need. <code class="computeroutput"><span class="identifier">HeightSumKey</span></code> is a template instantiation
+          of <a class="link" href="accumulation_key.html" title="accumulation_key"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">accumulation_key</span></code></a>
+          that will instruct the corresponding <code class="computeroutput"><span class="identifier">with_accumulation_base</span></code>
+          template instantiation to store the sum of the <code class="computeroutput"><span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_height</span></code>
+          values of a node and its children, while <code class="computeroutput"><span class="identifier">MinPriorityKey</span></code>
+          is a template instantiation of <a class="link" href="accumulation_key.html" title="accumulation_key"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">accumulation_key</span></code></a> that will instruct
+          the corresponding <a class="link" href="with_accumulation.html" title="with_accumulation<BaseGenerator,T1,T2,AccumulationKey>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">with_accumulation</span></code></a> template instantiation
+          to store the minimum of the <code class="computeroutput"><span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_priority</span></code>
+          values of a node and its children.
+        </p>
+<p>
+          <code class="computeroutput"><span class="identifier">GUIBinaryCompare</span></code> is a
+          Binary Predicate model that implements two
+          function call operators. The first one determines whether or not <a class="link" href="binary_descendant.html" title="binary_descendant()"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">binary_descendant</span><span class="special">()</span></code></a> should traverse the left branch;
+          the second one determines whether or not the algorithm should traverse
+          the right branch.
+        </p>
+<pre class="programlisting"><span class="keyword">namespace</span> <span class="identifier">example_keys</span> <span class="special">{</span>
+
+    <span class="keyword">struct</span> <span class="identifier">row_number</span>
+    <span class="special">{</span>
+    <span class="special">};</span>
+
+    <span class="keyword">struct</span> <span class="identifier">row_height</span>
+    <span class="special">{</span>
+    <span class="special">};</span>
+
+    <span class="keyword">struct</span> <span class="identifier">row_priority</span>
+    <span class="special">{</span>
+    <span class="special">};</span>
+<span class="special">}</span>
+
+<span class="keyword">typedef</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">fusion</span><span class="special">::</span><span class="identifier">map</span><span class="special"><</span>
+            <span class="identifier">boost</span><span class="special">::</span><span class="identifier">fusion</span><span class="special">::</span><span class="identifier">pair</span><span class="special"><</span><span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">,</span><span class="keyword">unsigned</span> <span class="keyword">int</span><span class="special">></span>
+          <span class="special">,</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">fusion</span><span class="special">::</span><span class="identifier">pair</span><span class="special"><</span><span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_height</span><span class="special">,</span><span class="keyword">unsigned</span> <span class="keyword">int</span><span class="special">></span>
+          <span class="special">,</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">fusion</span><span class="special">::</span><span class="identifier">pair</span><span class="special"><</span><span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_priority</span><span class="special">,</span><span class="keyword">unsigned</span> <span class="keyword">int</span><span class="special">></span>
+        <span class="special">></span>
+        <span class="identifier">GUITable</span><span class="special">;</span>
+<span class="keyword">typedef</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">accumulation_key</span><span class="special"><</span><span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_height</span><span class="special">></span>
+        <span class="identifier">HeightSumKey</span><span class="special">;</span>
+<span class="keyword">typedef</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">accumulation_key</span><span class="special"><</span>
+            <span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_priority</span>
+          <span class="special">,</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">accumulators</span><span class="special">::</span><span class="identifier">tag</span><span class="special">::</span><span class="identifier">min</span>
+        <span class="special">></span>
+        <span class="identifier">MinPriorityKey</span><span class="special">;</span>
+
+<span class="keyword">class</span> <span class="identifier">GUIBinaryCompare</span>
+<span class="special">{</span>
+    <span class="keyword">mutable</span> <span class="keyword">unsigned</span> <span class="keyword">int</span> <span class="identifier">total_height</span><span class="special">;</span>
+
+ <span class="keyword">public</span><span class="special">:</span>
+    <span class="identifier">GUIBinaryCompare</span><span class="special">()</span> <span class="special">:</span> <span class="identifier">total_height</span><span class="special">(</span><span class="number">0</span><span class="special">)</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">Node</span><span class="special">></span>
+    <span class="keyword">bool</span> <span class="keyword">operator</span><span class="special">()(</span><span class="keyword">unsigned</span> <span class="keyword">int</span> <span class="identifier">value</span><span class="special">,</span> <span class="identifier">Node</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">node</span><span class="special">)</span> <span class="keyword">const</span>
+    <span class="special">{</span>
+        <span class="keyword">typename</span> <span class="identifier">Node</span><span class="special">::</span><span class="identifier">const_pointer</span> <span class="identifier">left</span> <span class="special">=</span> <span class="identifier">node</span><span class="special">.</span><span class="identifier">get_left_child_ptr</span><span class="special">();</span>
+
+        <span class="keyword">return</span> <span class="identifier">left</span> <span class="special">&&</span> <span class="special">(</span>
+            <span class="identifier">value</span> <span class="special"><</span> <span class="keyword">this</span><span class="special">-></span><span class="identifier">total_height</span> <span class="special">+</span> <span class="identifier">get</span><span class="special">(*</span><span class="identifier">left</span><span class="special">,</span> <span class="identifier">HeightSumKey</span><span class="special">())</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">Node</span><span class="special">></span>
+    <span class="keyword">bool</span> <span class="keyword">operator</span><span class="special">()(</span><span class="identifier">Node</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">node</span><span class="special">,</span> <span class="keyword">unsigned</span> <span class="keyword">int</span> <span class="identifier">value</span><span class="special">)</span> <span class="keyword">const</span>
+    <span class="special">{</span>
+        <span class="keyword">this</span><span class="special">-></span><span class="identifier">total_height</span> <span class="special">+=</span> <span class="identifier">get</span><span class="special">(</span><span class="identifier">node</span><span class="special">,</span> <span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_height</span><span class="special">());</span>
+
+        <span class="keyword">typename</span> <span class="identifier">Node</span><span class="special">::</span><span class="identifier">const_pointer</span> <span class="identifier">left</span> <span class="special">=</span> <span class="identifier">node</span><span class="special">.</span><span class="identifier">get_left_child_ptr</span><span class="special">();</span>
+
+        <span class="keyword">if</span> <span class="special">(</span><span class="identifier">left</span><span class="special">)</span>
+        <span class="special">{</span>
+            <span class="keyword">this</span><span class="special">-></span><span class="identifier">total_height</span> <span class="special">+=</span> <span class="identifier">get</span><span class="special">(*</span><span class="identifier">left</span><span class="special">,</span> <span class="identifier">HeightSumKey</span><span class="special">());</span>
+        <span class="special">}</span>
+
+        <span class="keyword">return</span> <span class="keyword">this</span><span class="special">-></span><span class="identifier">total_height</span> <span class="special"><</span> <span class="identifier">value</span><span class="special">;</span>
+    <span class="special">}</span>
+<span class="special">};</span>
+</pre>
+<p>
+          With the boilerplate code out of the way, we can define the <code class="computeroutput"><span class="identifier">GUINode</span></code> data structure. The <a class="link" href="binary_node_base_gen.html" title="binary_node_base_gen<Size,AllocatorSelector>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">binary_node_base_gen</span></code></a> type induces
+          <code class="computeroutput"><span class="identifier">GUINode</span></code> to model the <a class="link" href="../concepts/binary_tree_node.html" title="Binary Tree Node"><span class="bold"><strong>Binary
+          Tree Node</strong></span></a> concept, while the <a class="link" href="with_accumulation.html" title="with_accumulation<BaseGenerator,T1,T2,AccumulationKey>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">with_accumulation</span></code></a> and <code class="computeroutput"><span class="identifier">with_accumulation_base</span></code> template instantiations
+          augment <code class="computeroutput"><span class="identifier">GUINode</span></code> with the
+          values associated with <code class="computeroutput"><span class="identifier">MinPriorityKey</span></code>
+          and <code class="computeroutput"><span class="identifier">HeightSumKey</span></code>, respectively.
+        </p>
+<pre class="programlisting"><span class="keyword">typedef</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">with_accumulation</span><span class="special"><</span>
+            <span class="identifier">boost</span><span class="special">::</span><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">with_accumulation_base_gen</span><span class="special"><</span>
+                <span class="identifier">boost</span><span class="special">::</span><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">binary_node_base_gen</span><span class="special"><></span>
+              <span class="special">,</span> <span class="identifier">HeightSumKey</span>
+            <span class="special">></span>
+          <span class="special">,</span> <span class="identifier">GUITable</span>
+          <span class="special">,</span> <span class="keyword">void</span>
+          <span class="special">,</span> <span class="identifier">MinPriorityKey</span>
+        <span class="special">></span>
+        <span class="identifier">GUINode</span><span class="special">;</span>
+</pre>
+<p>
+          The syntax for creating the root node and its descendants is no different
+          for the <code class="computeroutput"><span class="identifier">GUINode</span></code> type than
+          it is for <code class="literal"><a class="link" href="binary_node.html" title="binary_node<T,Size,AllocatorSelector>">tree_node::binary_node</a><GUITable></code>.
+          The accumulation values are calculated behind the scenes.
+        </p>
+<pre class="programlisting"><span class="identifier">GUINode</span> <span class="identifier">gui_root</span><span class="special">(</span>
+    <span class="identifier">boost</span><span class="special">::</span><span class="identifier">fusion</span><span class="special">::</span><span class="identifier">make_pair</span><span class="special"><</span><span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">>(</span><span class="number">20</span><span class="special">)</span>
+  <span class="special">,</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">fusion</span><span class="special">::</span><span class="identifier">make_pair</span><span class="special"><</span><span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_height</span><span class="special">>(</span><span class="number">12</span><span class="special">)</span>
+  <span class="special">,</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">fusion</span><span class="special">::</span><span class="identifier">make_pair</span><span class="special"><</span><span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_priority</span><span class="special">>(</span><span class="number">64</span><span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">gui_root</span><span class="special">.</span><span class="identifier">emplace_left</span><span class="special">(</span>
+    <span class="identifier">boost</span><span class="special">::</span><span class="identifier">fusion</span><span class="special">::</span><span class="identifier">make_pair</span><span class="special"><</span><span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">>(</span><span class="number">0</span><span class="special">)</span>
+  <span class="special">,</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">fusion</span><span class="special">::</span><span class="identifier">make_pair</span><span class="special"><</span><span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_height</span><span class="special">>(</span><span class="number">12</span><span class="special">)</span>
+  <span class="special">,</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">fusion</span><span class="special">::</span><span class="identifier">make_pair</span><span class="special"><</span><span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_priority</span><span class="special">>(</span><span class="number">20</span><span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">gui_root</span><span class="special">.</span><span class="identifier">emplace_left</span><span class="special">(</span>
+    <span class="identifier">boost</span><span class="special">::</span><span class="identifier">fusion</span><span class="special">::</span><span class="identifier">make_pair</span><span class="special"><</span><span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">>(</span><span class="number">3</span><span class="special">)</span>
+  <span class="special">,</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">fusion</span><span class="special">::</span><span class="identifier">make_pair</span><span class="special"><</span><span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_height</span><span class="special">>(</span><span class="number">4</span><span class="special">)</span>
+  <span class="special">,</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">fusion</span><span class="special">::</span><span class="identifier">make_pair</span><span class="special"><</span><span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_priority</span><span class="special">>(</span><span class="number">88</span><span class="special">)</span>
+<span class="special">)-></span><span class="identifier">emplace_right</span><span class="special">(</span>
+    <span class="identifier">boost</span><span class="special">::</span><span class="identifier">fusion</span><span class="special">::</span><span class="identifier">make_pair</span><span class="special"><</span><span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">>(</span><span class="number">4</span><span class="special">)</span>
+  <span class="special">,</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">fusion</span><span class="special">::</span><span class="identifier">make_pair</span><span class="special"><</span><span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_height</span><span class="special">>(</span><span class="number">12</span><span class="special">)</span>
+  <span class="special">,</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">fusion</span><span class="special">::</span><span class="identifier">make_pair</span><span class="special"><</span><span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_priority</span><span class="special">>(</span><span class="number">79</span><span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">gui_root</span><span class="special">.</span><span class="identifier">emplace_left</span><span class="special">(</span>
+    <span class="identifier">boost</span><span class="special">::</span><span class="identifier">fusion</span><span class="special">::</span><span class="identifier">make_pair</span><span class="special"><</span><span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">>(</span><span class="number">5</span><span class="special">)</span>
+  <span class="special">,</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">fusion</span><span class="special">::</span><span class="identifier">make_pair</span><span class="special"><</span><span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_height</span><span class="special">>(</span><span class="number">4</span><span class="special">)</span>
+  <span class="special">,</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">fusion</span><span class="special">::</span><span class="identifier">make_pair</span><span class="special"><</span><span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_priority</span><span class="special">>(</span><span class="number">36</span><span class="special">)</span>
+<span class="special">)-></span><span class="identifier">emplace_right</span><span class="special">(</span>
+    <span class="identifier">boost</span><span class="special">::</span><span class="identifier">fusion</span><span class="special">::</span><span class="identifier">make_pair</span><span class="special"><</span><span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">>(</span><span class="number">10</span><span class="special">)</span>
+  <span class="special">,</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">fusion</span><span class="special">::</span><span class="identifier">make_pair</span><span class="special"><</span><span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_height</span><span class="special">>(</span><span class="number">4</span><span class="special">)</span>
+  <span class="special">,</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">fusion</span><span class="special">::</span><span class="identifier">make_pair</span><span class="special"><</span><span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_priority</span><span class="special">>(</span><span class="number">5</span><span class="special">)</span>
+<span class="special">)-></span><span class="identifier">emplace_right</span><span class="special">(</span>
+    <span class="identifier">boost</span><span class="special">::</span><span class="identifier">fusion</span><span class="special">::</span><span class="identifier">make_pair</span><span class="special"><</span><span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">>(</span><span class="number">12</span><span class="special">)</span>
+  <span class="special">,</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">fusion</span><span class="special">::</span><span class="identifier">make_pair</span><span class="special"><</span><span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_height</span><span class="special">>(</span><span class="number">4</span><span class="special">)</span>
+  <span class="special">,</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">fusion</span><span class="special">::</span><span class="identifier">make_pair</span><span class="special"><</span><span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_priority</span><span class="special">>(</span><span class="number">19</span><span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">gui_root</span><span class="special">.</span><span class="identifier">emplace_right</span><span class="special">(</span>
+    <span class="identifier">boost</span><span class="special">::</span><span class="identifier">fusion</span><span class="special">::</span><span class="identifier">make_pair</span><span class="special"><</span><span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">>(</span><span class="number">59</span><span class="special">)</span>
+  <span class="special">,</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">fusion</span><span class="special">::</span><span class="identifier">make_pair</span><span class="special"><</span><span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_height</span><span class="special">>(</span><span class="number">12</span><span class="special">)</span>
+  <span class="special">,</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">fusion</span><span class="special">::</span><span class="identifier">make_pair</span><span class="special"><</span><span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_priority</span><span class="special">>(</span><span class="number">25</span><span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">gui_root</span><span class="special">.</span><span class="identifier">emplace_right</span><span class="special">(</span>
+    <span class="identifier">boost</span><span class="special">::</span><span class="identifier">fusion</span><span class="special">::</span><span class="identifier">make_pair</span><span class="special"><</span><span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">>(</span><span class="number">55</span><span class="special">)</span>
+  <span class="special">,</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">fusion</span><span class="special">::</span><span class="identifier">make_pair</span><span class="special"><</span><span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_height</span><span class="special">>(</span><span class="number">12</span><span class="special">)</span>
+  <span class="special">,</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">fusion</span><span class="special">::</span><span class="identifier">make_pair</span><span class="special"><</span><span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_priority</span><span class="special">>(</span><span class="number">91</span><span class="special">)</span>
+<span class="special">)-></span><span class="identifier">emplace_left</span><span class="special">(</span>
+    <span class="identifier">boost</span><span class="special">::</span><span class="identifier">fusion</span><span class="special">::</span><span class="identifier">make_pair</span><span class="special"><</span><span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">>(</span><span class="number">51</span><span class="special">)</span>
+  <span class="special">,</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">fusion</span><span class="special">::</span><span class="identifier">make_pair</span><span class="special"><</span><span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_height</span><span class="special">>(</span><span class="number">12</span><span class="special">)</span>
+  <span class="special">,</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">fusion</span><span class="special">::</span><span class="identifier">make_pair</span><span class="special"><</span><span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_priority</span><span class="special">>(</span><span class="number">7</span><span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">gui_root</span><span class="special">.</span><span class="identifier">emplace_right</span><span class="special">(</span>
+    <span class="identifier">boost</span><span class="special">::</span><span class="identifier">fusion</span><span class="special">::</span><span class="identifier">make_pair</span><span class="special"><</span><span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">>(</span><span class="number">42</span><span class="special">)</span>
+  <span class="special">,</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">fusion</span><span class="special">::</span><span class="identifier">make_pair</span><span class="special"><</span><span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_height</span><span class="special">>(</span><span class="number">12</span><span class="special">)</span>
+  <span class="special">,</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">fusion</span><span class="special">::</span><span class="identifier">make_pair</span><span class="special"><</span><span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_priority</span><span class="special">>(</span><span class="number">19</span><span class="special">)</span>
+<span class="special">)-></span><span class="identifier">emplace_left</span><span class="special">(</span>
+    <span class="identifier">boost</span><span class="special">::</span><span class="identifier">fusion</span><span class="special">::</span><span class="identifier">make_pair</span><span class="special"><</span><span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">>(</span><span class="number">22</span><span class="special">)</span>
+  <span class="special">,</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">fusion</span><span class="special">::</span><span class="identifier">make_pair</span><span class="special"><</span><span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_height</span><span class="special">>(</span><span class="number">12</span><span class="special">)</span>
+  <span class="special">,</span> <span class="identifier">boost</span><span class="special">::</span><span class="identifier">fusion</span><span class="special">::</span><span class="identifier">make_pair</span><span class="special"><</span><span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_priority</span><span class="special">>(</span><span class="number">54</span><span class="special">)</span>
+<span class="special">);</span>
+</pre>
+<p>
+          Using the <a class="link" href="binary_descendant.html" title="binary_descendant()"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">binary_descendant</span><span class="special">()</span></code></a>
+          algorithm with <code class="computeroutput"><span class="identifier">GUIBinaryCompare</span></code>
+          enables the application to find the row number that occupies the space
+          a given number of pixels from the top in logarithmic time. A traversal
+          through the nodes will also reveal that the tree exhibits the heap-order
+          property with respect to <code class="computeroutput"><span class="identifier">MinPriorityKey</span></code>
+          values.
+        </p>
+<pre class="programlisting"><span class="keyword">for</span> <span class="special">(</span>
+    <span class="identifier">boost</span><span class="special">::</span><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">breadth_first_descendant_iterator</span><span class="special"><</span><span class="identifier">GUINode</span> <span class="keyword">const</span><span class="special">></span> <span class="identifier">itr</span><span class="special">(</span>
+        <span class="identifier">gui_root</span>
+    <span class="special">);</span>
+    <span class="identifier">itr</span><span class="special">;</span>
+    <span class="special">++</span><span class="identifier">itr</span>
+<span class="special">)</span>
+<span class="special">{</span>
+    <span class="identifier">BOOST_CHECK</span><span class="special">(</span>
+        <span class="identifier">get</span><span class="special">(*</span><span class="identifier">itr</span><span class="special">-></span><span class="identifier">get_parent_ptr</span><span class="special">(),</span> <span class="identifier">MinPriorityKey</span><span class="special">())</span>
+     <span class="special"><=</span> <span class="identifier">get</span><span class="special">(*</span><span class="identifier">itr</span><span class="special">,</span> <span class="identifier">MinPriorityKey</span><span class="special">())</span>
+    <span class="special">);</span>
+<span class="special">}</span>
+
+<span class="identifier">BOOST_CHECK</span><span class="special">(</span>
+    <span class="number">0</span> <span class="special">==</span> <span class="identifier">get</span><span class="special">(</span>
+        <span class="special">*</span><span class="identifier">binary_descendant</span><span class="special">(&</span><span class="identifier">gui_root</span><span class="special">,</span> <span class="number">0</span><span class="special">,</span> <span class="identifier">GUIBinaryCompare</span><span class="special">())</span>
+      <span class="special">,</span> <span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">()</span>
+    <span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">BOOST_CHECK</span><span class="special">(</span>
+    <span class="number">0</span> <span class="special">==</span> <span class="identifier">get</span><span class="special">(</span>
+        <span class="special">*</span><span class="identifier">binary_descendant</span><span class="special">(&</span><span class="identifier">gui_root</span><span class="special">,</span> <span class="number">1</span><span class="special">,</span> <span class="identifier">GUIBinaryCompare</span><span class="special">())</span>
+      <span class="special">,</span> <span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">()</span>
+    <span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">BOOST_CHECK</span><span class="special">(</span>
+    <span class="number">0</span> <span class="special">==</span> <span class="identifier">get</span><span class="special">(</span>
+        <span class="special">*</span><span class="identifier">binary_descendant</span><span class="special">(&</span><span class="identifier">gui_root</span><span class="special">,</span> <span class="number">2</span><span class="special">,</span> <span class="identifier">GUIBinaryCompare</span><span class="special">())</span>
+      <span class="special">,</span> <span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">()</span>
+    <span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">BOOST_CHECK</span><span class="special">(</span>
+    <span class="number">0</span> <span class="special">==</span> <span class="identifier">get</span><span class="special">(</span>
+        <span class="special">*</span><span class="identifier">binary_descendant</span><span class="special">(&</span><span class="identifier">gui_root</span><span class="special">,</span> <span class="number">3</span><span class="special">,</span> <span class="identifier">GUIBinaryCompare</span><span class="special">())</span>
+      <span class="special">,</span> <span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">()</span>
+    <span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">BOOST_CHECK</span><span class="special">(</span>
+    <span class="number">0</span> <span class="special">==</span> <span class="identifier">get</span><span class="special">(</span>
+        <span class="special">*</span><span class="identifier">binary_descendant</span><span class="special">(&</span><span class="identifier">gui_root</span><span class="special">,</span> <span class="number">4</span><span class="special">,</span> <span class="identifier">GUIBinaryCompare</span><span class="special">())</span>
+      <span class="special">,</span> <span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">()</span>
+    <span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">BOOST_CHECK</span><span class="special">(</span>
+    <span class="number">0</span> <span class="special">==</span> <span class="identifier">get</span><span class="special">(</span>
+        <span class="special">*</span><span class="identifier">binary_descendant</span><span class="special">(&</span><span class="identifier">gui_root</span><span class="special">,</span> <span class="number">5</span><span class="special">,</span> <span class="identifier">GUIBinaryCompare</span><span class="special">())</span>
+      <span class="special">,</span> <span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">()</span>
+    <span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">BOOST_CHECK</span><span class="special">(</span>
+    <span class="number">0</span> <span class="special">==</span> <span class="identifier">get</span><span class="special">(</span>
+        <span class="special">*</span><span class="identifier">binary_descendant</span><span class="special">(&</span><span class="identifier">gui_root</span><span class="special">,</span> <span class="number">6</span><span class="special">,</span> <span class="identifier">GUIBinaryCompare</span><span class="special">())</span>
+      <span class="special">,</span> <span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">()</span>
+    <span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">BOOST_CHECK</span><span class="special">(</span>
+    <span class="number">0</span> <span class="special">==</span> <span class="identifier">get</span><span class="special">(</span>
+        <span class="special">*</span><span class="identifier">binary_descendant</span><span class="special">(&</span><span class="identifier">gui_root</span><span class="special">,</span> <span class="number">7</span><span class="special">,</span> <span class="identifier">GUIBinaryCompare</span><span class="special">())</span>
+      <span class="special">,</span> <span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">()</span>
+    <span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">BOOST_CHECK</span><span class="special">(</span>
+    <span class="number">0</span> <span class="special">==</span> <span class="identifier">get</span><span class="special">(</span>
+        <span class="special">*</span><span class="identifier">binary_descendant</span><span class="special">(&</span><span class="identifier">gui_root</span><span class="special">,</span> <span class="number">8</span><span class="special">,</span> <span class="identifier">GUIBinaryCompare</span><span class="special">())</span>
+      <span class="special">,</span> <span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">()</span>
+    <span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">BOOST_CHECK</span><span class="special">(</span>
+    <span class="number">0</span> <span class="special">==</span> <span class="identifier">get</span><span class="special">(</span>
+        <span class="special">*</span><span class="identifier">binary_descendant</span><span class="special">(&</span><span class="identifier">gui_root</span><span class="special">,</span> <span class="number">9</span><span class="special">,</span> <span class="identifier">GUIBinaryCompare</span><span class="special">())</span>
+      <span class="special">,</span> <span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">()</span>
+    <span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">BOOST_CHECK</span><span class="special">(</span>
+    <span class="number">0</span> <span class="special">==</span> <span class="identifier">get</span><span class="special">(</span>
+        <span class="special">*</span><span class="identifier">binary_descendant</span><span class="special">(&</span><span class="identifier">gui_root</span><span class="special">,</span> <span class="number">10</span><span class="special">,</span> <span class="identifier">GUIBinaryCompare</span><span class="special">())</span>
+      <span class="special">,</span> <span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">()</span>
+    <span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">BOOST_CHECK</span><span class="special">(</span>
+    <span class="number">0</span> <span class="special">==</span> <span class="identifier">get</span><span class="special">(</span>
+        <span class="special">*</span><span class="identifier">binary_descendant</span><span class="special">(&</span><span class="identifier">gui_root</span><span class="special">,</span> <span class="number">11</span><span class="special">,</span> <span class="identifier">GUIBinaryCompare</span><span class="special">())</span>
+      <span class="special">,</span> <span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">()</span>
+    <span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">BOOST_CHECK</span><span class="special">(</span>
+    <span class="number">3</span> <span class="special">==</span> <span class="identifier">get</span><span class="special">(</span>
+        <span class="special">*</span><span class="identifier">binary_descendant</span><span class="special">(&</span><span class="identifier">gui_root</span><span class="special">,</span> <span class="number">12</span><span class="special">,</span> <span class="identifier">GUIBinaryCompare</span><span class="special">())</span>
+      <span class="special">,</span> <span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">()</span>
+    <span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">BOOST_CHECK</span><span class="special">(</span>
+    <span class="number">3</span> <span class="special">==</span> <span class="identifier">get</span><span class="special">(</span>
+        <span class="special">*</span><span class="identifier">binary_descendant</span><span class="special">(&</span><span class="identifier">gui_root</span><span class="special">,</span> <span class="number">13</span><span class="special">,</span> <span class="identifier">GUIBinaryCompare</span><span class="special">())</span>
+      <span class="special">,</span> <span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">()</span>
+    <span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">BOOST_CHECK</span><span class="special">(</span>
+    <span class="number">3</span> <span class="special">==</span> <span class="identifier">get</span><span class="special">(</span>
+        <span class="special">*</span><span class="identifier">binary_descendant</span><span class="special">(&</span><span class="identifier">gui_root</span><span class="special">,</span> <span class="number">14</span><span class="special">,</span> <span class="identifier">GUIBinaryCompare</span><span class="special">())</span>
+      <span class="special">,</span> <span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">()</span>
+    <span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">BOOST_CHECK</span><span class="special">(</span>
+    <span class="number">3</span> <span class="special">==</span> <span class="identifier">get</span><span class="special">(</span>
+        <span class="special">*</span><span class="identifier">binary_descendant</span><span class="special">(&</span><span class="identifier">gui_root</span><span class="special">,</span> <span class="number">15</span><span class="special">,</span> <span class="identifier">GUIBinaryCompare</span><span class="special">())</span>
+      <span class="special">,</span> <span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">()</span>
+    <span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">BOOST_CHECK</span><span class="special">(</span>
+    <span class="number">3</span> <span class="special">==</span> <span class="identifier">get</span><span class="special">(</span>
+        <span class="special">*</span><span class="identifier">binary_descendant</span><span class="special">(&</span><span class="identifier">gui_root</span><span class="special">,</span> <span class="number">16</span><span class="special">,</span> <span class="identifier">GUIBinaryCompare</span><span class="special">())</span>
+      <span class="special">,</span> <span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">()</span>
+    <span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">BOOST_CHECK</span><span class="special">(</span>
+    <span class="number">4</span> <span class="special">==</span> <span class="identifier">get</span><span class="special">(</span>
+        <span class="special">*</span><span class="identifier">binary_descendant</span><span class="special">(&</span><span class="identifier">gui_root</span><span class="special">,</span> <span class="number">17</span><span class="special">,</span> <span class="identifier">GUIBinaryCompare</span><span class="special">())</span>
+      <span class="special">,</span> <span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">()</span>
+    <span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">BOOST_CHECK</span><span class="special">(</span>
+    <span class="number">4</span> <span class="special">==</span> <span class="identifier">get</span><span class="special">(</span>
+        <span class="special">*</span><span class="identifier">binary_descendant</span><span class="special">(&</span><span class="identifier">gui_root</span><span class="special">,</span> <span class="number">18</span><span class="special">,</span> <span class="identifier">GUIBinaryCompare</span><span class="special">())</span>
+      <span class="special">,</span> <span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">()</span>
+    <span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">BOOST_CHECK</span><span class="special">(</span>
+    <span class="number">4</span> <span class="special">==</span> <span class="identifier">get</span><span class="special">(</span>
+        <span class="special">*</span><span class="identifier">binary_descendant</span><span class="special">(&</span><span class="identifier">gui_root</span><span class="special">,</span> <span class="number">19</span><span class="special">,</span> <span class="identifier">GUIBinaryCompare</span><span class="special">())</span>
+      <span class="special">,</span> <span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">()</span>
+    <span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">BOOST_CHECK</span><span class="special">(</span>
+    <span class="number">4</span> <span class="special">==</span> <span class="identifier">get</span><span class="special">(</span>
+        <span class="special">*</span><span class="identifier">binary_descendant</span><span class="special">(&</span><span class="identifier">gui_root</span><span class="special">,</span> <span class="number">20</span><span class="special">,</span> <span class="identifier">GUIBinaryCompare</span><span class="special">())</span>
+      <span class="special">,</span> <span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">()</span>
+    <span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">BOOST_CHECK</span><span class="special">(</span>
+    <span class="number">4</span> <span class="special">==</span> <span class="identifier">get</span><span class="special">(</span>
+        <span class="special">*</span><span class="identifier">binary_descendant</span><span class="special">(&</span><span class="identifier">gui_root</span><span class="special">,</span> <span class="number">21</span><span class="special">,</span> <span class="identifier">GUIBinaryCompare</span><span class="special">())</span>
+      <span class="special">,</span> <span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">()</span>
+    <span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">BOOST_CHECK</span><span class="special">(</span>
+    <span class="number">4</span> <span class="special">==</span> <span class="identifier">get</span><span class="special">(</span>
+        <span class="special">*</span><span class="identifier">binary_descendant</span><span class="special">(&</span><span class="identifier">gui_root</span><span class="special">,</span> <span class="number">22</span><span class="special">,</span> <span class="identifier">GUIBinaryCompare</span><span class="special">())</span>
+      <span class="special">,</span> <span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">()</span>
+    <span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">BOOST_CHECK</span><span class="special">(</span>
+    <span class="number">4</span> <span class="special">==</span> <span class="identifier">get</span><span class="special">(</span>
+        <span class="special">*</span><span class="identifier">binary_descendant</span><span class="special">(&</span><span class="identifier">gui_root</span><span class="special">,</span> <span class="number">23</span><span class="special">,</span> <span class="identifier">GUIBinaryCompare</span><span class="special">())</span>
+      <span class="special">,</span> <span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">()</span>
+    <span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">BOOST_CHECK</span><span class="special">(</span>
+    <span class="number">4</span> <span class="special">==</span> <span class="identifier">get</span><span class="special">(</span>
+        <span class="special">*</span><span class="identifier">binary_descendant</span><span class="special">(&</span><span class="identifier">gui_root</span><span class="special">,</span> <span class="number">24</span><span class="special">,</span> <span class="identifier">GUIBinaryCompare</span><span class="special">())</span>
+      <span class="special">,</span> <span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">()</span>
+    <span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">BOOST_CHECK</span><span class="special">(</span>
+    <span class="number">4</span> <span class="special">==</span> <span class="identifier">get</span><span class="special">(</span>
+        <span class="special">*</span><span class="identifier">binary_descendant</span><span class="special">(&</span><span class="identifier">gui_root</span><span class="special">,</span> <span class="number">25</span><span class="special">,</span> <span class="identifier">GUIBinaryCompare</span><span class="special">())</span>
+      <span class="special">,</span> <span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">()</span>
+    <span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">BOOST_CHECK</span><span class="special">(</span>
+    <span class="number">4</span> <span class="special">==</span> <span class="identifier">get</span><span class="special">(</span>
+        <span class="special">*</span><span class="identifier">binary_descendant</span><span class="special">(&</span><span class="identifier">gui_root</span><span class="special">,</span> <span class="number">26</span><span class="special">,</span> <span class="identifier">GUIBinaryCompare</span><span class="special">())</span>
+      <span class="special">,</span> <span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">()</span>
+    <span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">BOOST_CHECK</span><span class="special">(</span>
+    <span class="number">4</span> <span class="special">==</span> <span class="identifier">get</span><span class="special">(</span>
+        <span class="special">*</span><span class="identifier">binary_descendant</span><span class="special">(&</span><span class="identifier">gui_root</span><span class="special">,</span> <span class="number">27</span><span class="special">,</span> <span class="identifier">GUIBinaryCompare</span><span class="special">())</span>
+      <span class="special">,</span> <span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">()</span>
+    <span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">BOOST_CHECK</span><span class="special">(</span>
+    <span class="number">5</span> <span class="special">==</span> <span class="identifier">get</span><span class="special">(</span>
+        <span class="special">*</span><span class="identifier">binary_descendant</span><span class="special">(&</span><span class="identifier">gui_root</span><span class="special">,</span> <span class="number">28</span><span class="special">,</span> <span class="identifier">GUIBinaryCompare</span><span class="special">())</span>
+      <span class="special">,</span> <span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">()</span>
+    <span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">BOOST_CHECK</span><span class="special">(</span>
+    <span class="number">5</span> <span class="special">==</span> <span class="identifier">get</span><span class="special">(</span>
+        <span class="special">*</span><span class="identifier">binary_descendant</span><span class="special">(&</span><span class="identifier">gui_root</span><span class="special">,</span> <span class="number">29</span><span class="special">,</span> <span class="identifier">GUIBinaryCompare</span><span class="special">())</span>
+      <span class="special">,</span> <span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">()</span>
+    <span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">BOOST_CHECK</span><span class="special">(</span>
+    <span class="number">5</span> <span class="special">==</span> <span class="identifier">get</span><span class="special">(</span>
+        <span class="special">*</span><span class="identifier">binary_descendant</span><span class="special">(&</span><span class="identifier">gui_root</span><span class="special">,</span> <span class="number">30</span><span class="special">,</span> <span class="identifier">GUIBinaryCompare</span><span class="special">())</span>
+      <span class="special">,</span> <span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">()</span>
+    <span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">BOOST_CHECK</span><span class="special">(</span>
+    <span class="number">5</span> <span class="special">==</span> <span class="identifier">get</span><span class="special">(</span>
+        <span class="special">*</span><span class="identifier">binary_descendant</span><span class="special">(&</span><span class="identifier">gui_root</span><span class="special">,</span> <span class="number">31</span><span class="special">,</span> <span class="identifier">GUIBinaryCompare</span><span class="special">())</span>
+      <span class="special">,</span> <span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">()</span>
+    <span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">BOOST_CHECK</span><span class="special">(</span>
+    <span class="number">5</span> <span class="special">==</span> <span class="identifier">get</span><span class="special">(</span>
+        <span class="special">*</span><span class="identifier">binary_descendant</span><span class="special">(&</span><span class="identifier">gui_root</span><span class="special">,</span> <span class="number">32</span><span class="special">,</span> <span class="identifier">GUIBinaryCompare</span><span class="special">())</span>
+      <span class="special">,</span> <span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">()</span>
+    <span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">BOOST_CHECK</span><span class="special">(</span>
+    <span class="number">10</span> <span class="special">==</span> <span class="identifier">get</span><span class="special">(</span>
+        <span class="special">*</span><span class="identifier">binary_descendant</span><span class="special">(&</span><span class="identifier">gui_root</span><span class="special">,</span> <span class="number">33</span><span class="special">,</span> <span class="identifier">GUIBinaryCompare</span><span class="special">())</span>
+      <span class="special">,</span> <span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">()</span>
+    <span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">BOOST_CHECK</span><span class="special">(</span>
+    <span class="number">10</span> <span class="special">==</span> <span class="identifier">get</span><span class="special">(</span>
+        <span class="special">*</span><span class="identifier">binary_descendant</span><span class="special">(&</span><span class="identifier">gui_root</span><span class="special">,</span> <span class="number">34</span><span class="special">,</span> <span class="identifier">GUIBinaryCompare</span><span class="special">())</span>
+      <span class="special">,</span> <span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">()</span>
+    <span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">BOOST_CHECK</span><span class="special">(</span>
+    <span class="number">10</span> <span class="special">==</span> <span class="identifier">get</span><span class="special">(</span>
+        <span class="special">*</span><span class="identifier">binary_descendant</span><span class="special">(&</span><span class="identifier">gui_root</span><span class="special">,</span> <span class="number">35</span><span class="special">,</span> <span class="identifier">GUIBinaryCompare</span><span class="special">())</span>
+      <span class="special">,</span> <span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">()</span>
+    <span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">BOOST_CHECK</span><span class="special">(</span>
+    <span class="number">10</span> <span class="special">==</span> <span class="identifier">get</span><span class="special">(</span>
+        <span class="special">*</span><span class="identifier">binary_descendant</span><span class="special">(&</span><span class="identifier">gui_root</span><span class="special">,</span> <span class="number">36</span><span class="special">,</span> <span class="identifier">GUIBinaryCompare</span><span class="special">())</span>
+      <span class="special">,</span> <span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">()</span>
+    <span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">BOOST_CHECK</span><span class="special">(</span>
+    <span class="number">12</span> <span class="special">==</span> <span class="identifier">get</span><span class="special">(</span>
+        <span class="special">*</span><span class="identifier">binary_descendant</span><span class="special">(&</span><span class="identifier">gui_root</span><span class="special">,</span> <span class="number">37</span><span class="special">,</span> <span class="identifier">GUIBinaryCompare</span><span class="special">())</span>
+      <span class="special">,</span> <span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">()</span>
+    <span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">BOOST_CHECK</span><span class="special">(</span>
+    <span class="number">12</span> <span class="special">==</span> <span class="identifier">get</span><span class="special">(</span>
+        <span class="special">*</span><span class="identifier">binary_descendant</span><span class="special">(&</span><span class="identifier">gui_root</span><span class="special">,</span> <span class="number">38</span><span class="special">,</span> <span class="identifier">GUIBinaryCompare</span><span class="special">())</span>
+      <span class="special">,</span> <span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">()</span>
+    <span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">BOOST_CHECK</span><span class="special">(</span>
+    <span class="number">12</span> <span class="special">==</span> <span class="identifier">get</span><span class="special">(</span>
+        <span class="special">*</span><span class="identifier">binary_descendant</span><span class="special">(&</span><span class="identifier">gui_root</span><span class="special">,</span> <span class="number">39</span><span class="special">,</span> <span class="identifier">GUIBinaryCompare</span><span class="special">())</span>
+      <span class="special">,</span> <span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">()</span>
+    <span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">BOOST_CHECK</span><span class="special">(</span>
+    <span class="number">20</span> <span class="special">==</span> <span class="identifier">get</span><span class="special">(</span>
+        <span class="special">*</span><span class="identifier">binary_descendant</span><span class="special">(&</span><span class="identifier">gui_root</span><span class="special">,</span> <span class="number">40</span><span class="special">,</span> <span class="identifier">GUIBinaryCompare</span><span class="special">())</span>
+      <span class="special">,</span> <span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">()</span>
+    <span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">BOOST_CHECK</span><span class="special">(</span>
+    <span class="number">20</span> <span class="special">==</span> <span class="identifier">get</span><span class="special">(</span>
+        <span class="special">*</span><span class="identifier">binary_descendant</span><span class="special">(&</span><span class="identifier">gui_root</span><span class="special">,</span> <span class="number">41</span><span class="special">,</span> <span class="identifier">GUIBinaryCompare</span><span class="special">())</span>
+      <span class="special">,</span> <span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">()</span>
+    <span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">BOOST_CHECK</span><span class="special">(</span>
+    <span class="number">20</span> <span class="special">==</span> <span class="identifier">get</span><span class="special">(</span>
+        <span class="special">*</span><span class="identifier">binary_descendant</span><span class="special">(&</span><span class="identifier">gui_root</span><span class="special">,</span> <span class="number">42</span><span class="special">,</span> <span class="identifier">GUIBinaryCompare</span><span class="special">())</span>
+      <span class="special">,</span> <span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">()</span>
+    <span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">BOOST_CHECK</span><span class="special">(</span>
+    <span class="number">20</span> <span class="special">==</span> <span class="identifier">get</span><span class="special">(</span>
+        <span class="special">*</span><span class="identifier">binary_descendant</span><span class="special">(&</span><span class="identifier">gui_root</span><span class="special">,</span> <span class="number">43</span><span class="special">,</span> <span class="identifier">GUIBinaryCompare</span><span class="special">())</span>
+      <span class="special">,</span> <span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">()</span>
+    <span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">BOOST_CHECK</span><span class="special">(</span>
+    <span class="number">20</span> <span class="special">==</span> <span class="identifier">get</span><span class="special">(</span>
+        <span class="special">*</span><span class="identifier">binary_descendant</span><span class="special">(&</span><span class="identifier">gui_root</span><span class="special">,</span> <span class="number">44</span><span class="special">,</span> <span class="identifier">GUIBinaryCompare</span><span class="special">())</span>
+      <span class="special">,</span> <span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">()</span>
+    <span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">BOOST_CHECK</span><span class="special">(</span>
+    <span class="number">20</span> <span class="special">==</span> <span class="identifier">get</span><span class="special">(</span>
+        <span class="special">*</span><span class="identifier">binary_descendant</span><span class="special">(&</span><span class="identifier">gui_root</span><span class="special">,</span> <span class="number">45</span><span class="special">,</span> <span class="identifier">GUIBinaryCompare</span><span class="special">())</span>
+      <span class="special">,</span> <span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">()</span>
+    <span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">BOOST_CHECK</span><span class="special">(</span>
+    <span class="number">20</span> <span class="special">==</span> <span class="identifier">get</span><span class="special">(</span>
+        <span class="special">*</span><span class="identifier">binary_descendant</span><span class="special">(&</span><span class="identifier">gui_root</span><span class="special">,</span> <span class="number">46</span><span class="special">,</span> <span class="identifier">GUIBinaryCompare</span><span class="special">())</span>
+      <span class="special">,</span> <span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">()</span>
+    <span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">BOOST_CHECK</span><span class="special">(</span>
+    <span class="number">20</span> <span class="special">==</span> <span class="identifier">get</span><span class="special">(</span>
+        <span class="special">*</span><span class="identifier">binary_descendant</span><span class="special">(&</span><span class="identifier">gui_root</span><span class="special">,</span> <span class="number">47</span><span class="special">,</span> <span class="identifier">GUIBinaryCompare</span><span class="special">())</span>
+      <span class="special">,</span> <span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">()</span>
+    <span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">BOOST_CHECK</span><span class="special">(</span>
+    <span class="number">20</span> <span class="special">==</span> <span class="identifier">get</span><span class="special">(</span>
+        <span class="special">*</span><span class="identifier">binary_descendant</span><span class="special">(&</span><span class="identifier">gui_root</span><span class="special">,</span> <span class="number">48</span><span class="special">,</span> <span class="identifier">GUIBinaryCompare</span><span class="special">())</span>
+      <span class="special">,</span> <span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">()</span>
+    <span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">BOOST_CHECK</span><span class="special">(</span>
+    <span class="number">20</span> <span class="special">==</span> <span class="identifier">get</span><span class="special">(</span>
+        <span class="special">*</span><span class="identifier">binary_descendant</span><span class="special">(&</span><span class="identifier">gui_root</span><span class="special">,</span> <span class="number">49</span><span class="special">,</span> <span class="identifier">GUIBinaryCompare</span><span class="special">())</span>
+      <span class="special">,</span> <span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">()</span>
+    <span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">BOOST_CHECK</span><span class="special">(</span>
+    <span class="number">20</span> <span class="special">==</span> <span class="identifier">get</span><span class="special">(</span>
+        <span class="special">*</span><span class="identifier">binary_descendant</span><span class="special">(&</span><span class="identifier">gui_root</span><span class="special">,</span> <span class="number">50</span><span class="special">,</span> <span class="identifier">GUIBinaryCompare</span><span class="special">())</span>
+      <span class="special">,</span> <span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">()</span>
+    <span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">BOOST_CHECK</span><span class="special">(</span>
+    <span class="number">20</span> <span class="special">==</span> <span class="identifier">get</span><span class="special">(</span>
+        <span class="special">*</span><span class="identifier">binary_descendant</span><span class="special">(&</span><span class="identifier">gui_root</span><span class="special">,</span> <span class="number">51</span><span class="special">,</span> <span class="identifier">GUIBinaryCompare</span><span class="special">())</span>
+      <span class="special">,</span> <span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">()</span>
+    <span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">BOOST_CHECK</span><span class="special">(</span>
+    <span class="number">20</span> <span class="special">==</span> <span class="identifier">get</span><span class="special">(</span>
+        <span class="special">*</span><span class="identifier">binary_descendant</span><span class="special">(&</span><span class="identifier">gui_root</span><span class="special">,</span> <span class="number">52</span><span class="special">,</span> <span class="identifier">GUIBinaryCompare</span><span class="special">())</span>
+      <span class="special">,</span> <span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">()</span>
+    <span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">BOOST_CHECK</span><span class="special">(</span>
+    <span class="number">22</span> <span class="special">==</span> <span class="identifier">get</span><span class="special">(</span>
+        <span class="special">*</span><span class="identifier">binary_descendant</span><span class="special">(&</span><span class="identifier">gui_root</span><span class="special">,</span> <span class="number">53</span><span class="special">,</span> <span class="identifier">GUIBinaryCompare</span><span class="special">())</span>
+      <span class="special">,</span> <span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">()</span>
+    <span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">BOOST_CHECK</span><span class="special">(</span>
+    <span class="number">22</span> <span class="special">==</span> <span class="identifier">get</span><span class="special">(</span>
+        <span class="special">*</span><span class="identifier">binary_descendant</span><span class="special">(&</span><span class="identifier">gui_root</span><span class="special">,</span> <span class="number">54</span><span class="special">,</span> <span class="identifier">GUIBinaryCompare</span><span class="special">())</span>
+      <span class="special">,</span> <span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">()</span>
+    <span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">BOOST_CHECK</span><span class="special">(</span>
+    <span class="number">22</span> <span class="special">==</span> <span class="identifier">get</span><span class="special">(</span>
+        <span class="special">*</span><span class="identifier">binary_descendant</span><span class="special">(&</span><span class="identifier">gui_root</span><span class="special">,</span> <span class="number">55</span><span class="special">,</span> <span class="identifier">GUIBinaryCompare</span><span class="special">())</span>
+      <span class="special">,</span> <span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">()</span>
+    <span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">BOOST_CHECK</span><span class="special">(</span>
+    <span class="number">22</span> <span class="special">==</span> <span class="identifier">get</span><span class="special">(</span>
+        <span class="special">*</span><span class="identifier">binary_descendant</span><span class="special">(&</span><span class="identifier">gui_root</span><span class="special">,</span> <span class="number">56</span><span class="special">,</span> <span class="identifier">GUIBinaryCompare</span><span class="special">())</span>
+      <span class="special">,</span> <span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">()</span>
+    <span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">BOOST_CHECK</span><span class="special">(</span>
+    <span class="number">22</span> <span class="special">==</span> <span class="identifier">get</span><span class="special">(</span>
+        <span class="special">*</span><span class="identifier">binary_descendant</span><span class="special">(&</span><span class="identifier">gui_root</span><span class="special">,</span> <span class="number">57</span><span class="special">,</span> <span class="identifier">GUIBinaryCompare</span><span class="special">())</span>
+      <span class="special">,</span> <span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">()</span>
+    <span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">BOOST_CHECK</span><span class="special">(</span>
+    <span class="number">22</span> <span class="special">==</span> <span class="identifier">get</span><span class="special">(</span>
+        <span class="special">*</span><span class="identifier">binary_descendant</span><span class="special">(&</span><span class="identifier">gui_root</span><span class="special">,</span> <span class="number">58</span><span class="special">,</span> <span class="identifier">GUIBinaryCompare</span><span class="special">())</span>
+      <span class="special">,</span> <span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">()</span>
+    <span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">BOOST_CHECK</span><span class="special">(</span>
+    <span class="number">22</span> <span class="special">==</span> <span class="identifier">get</span><span class="special">(</span>
+        <span class="special">*</span><span class="identifier">binary_descendant</span><span class="special">(&</span><span class="identifier">gui_root</span><span class="special">,</span> <span class="number">59</span><span class="special">,</span> <span class="identifier">GUIBinaryCompare</span><span class="special">())</span>
+      <span class="special">,</span> <span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">()</span>
+    <span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">BOOST_CHECK</span><span class="special">(</span>
+    <span class="number">22</span> <span class="special">==</span> <span class="identifier">get</span><span class="special">(</span>
+        <span class="special">*</span><span class="identifier">binary_descendant</span><span class="special">(&</span><span class="identifier">gui_root</span><span class="special">,</span> <span class="number">60</span><span class="special">,</span> <span class="identifier">GUIBinaryCompare</span><span class="special">())</span>
+      <span class="special">,</span> <span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">()</span>
+    <span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">BOOST_CHECK</span><span class="special">(</span>
+    <span class="number">22</span> <span class="special">==</span> <span class="identifier">get</span><span class="special">(</span>
+        <span class="special">*</span><span class="identifier">binary_descendant</span><span class="special">(&</span><span class="identifier">gui_root</span><span class="special">,</span> <span class="number">61</span><span class="special">,</span> <span class="identifier">GUIBinaryCompare</span><span class="special">())</span>
+      <span class="special">,</span> <span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">()</span>
+    <span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">BOOST_CHECK</span><span class="special">(</span>
+    <span class="number">22</span> <span class="special">==</span> <span class="identifier">get</span><span class="special">(</span>
+        <span class="special">*</span><span class="identifier">binary_descendant</span><span class="special">(&</span><span class="identifier">gui_root</span><span class="special">,</span> <span class="number">62</span><span class="special">,</span> <span class="identifier">GUIBinaryCompare</span><span class="special">())</span>
+      <span class="special">,</span> <span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">()</span>
+    <span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">BOOST_CHECK</span><span class="special">(</span>
+    <span class="number">22</span> <span class="special">==</span> <span class="identifier">get</span><span class="special">(</span>
+        <span class="special">*</span><span class="identifier">binary_descendant</span><span class="special">(&</span><span class="identifier">gui_root</span><span class="special">,</span> <span class="number">63</span><span class="special">,</span> <span class="identifier">GUIBinaryCompare</span><span class="special">())</span>
+      <span class="special">,</span> <span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">()</span>
+    <span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">BOOST_CHECK</span><span class="special">(</span>
+    <span class="number">42</span> <span class="special">==</span> <span class="identifier">get</span><span class="special">(</span>
+        <span class="special">*</span><span class="identifier">binary_descendant</span><span class="special">(&</span><span class="identifier">gui_root</span><span class="special">,</span> <span class="number">64</span><span class="special">,</span> <span class="identifier">GUIBinaryCompare</span><span class="special">())</span>
+      <span class="special">,</span> <span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">()</span>
+    <span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">BOOST_CHECK</span><span class="special">(</span>
+    <span class="number">42</span> <span class="special">==</span> <span class="identifier">get</span><span class="special">(</span>
+        <span class="special">*</span><span class="identifier">binary_descendant</span><span class="special">(&</span><span class="identifier">gui_root</span><span class="special">,</span> <span class="number">65</span><span class="special">,</span> <span class="identifier">GUIBinaryCompare</span><span class="special">())</span>
+      <span class="special">,</span> <span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">()</span>
+    <span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">BOOST_CHECK</span><span class="special">(</span>
+    <span class="number">42</span> <span class="special">==</span> <span class="identifier">get</span><span class="special">(</span>
+        <span class="special">*</span><span class="identifier">binary_descendant</span><span class="special">(&</span><span class="identifier">gui_root</span><span class="special">,</span> <span class="number">66</span><span class="special">,</span> <span class="identifier">GUIBinaryCompare</span><span class="special">())</span>
+      <span class="special">,</span> <span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">()</span>
+    <span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">BOOST_CHECK</span><span class="special">(</span>
+    <span class="number">42</span> <span class="special">==</span> <span class="identifier">get</span><span class="special">(</span>
+        <span class="special">*</span><span class="identifier">binary_descendant</span><span class="special">(&</span><span class="identifier">gui_root</span><span class="special">,</span> <span class="number">67</span><span class="special">,</span> <span class="identifier">GUIBinaryCompare</span><span class="special">())</span>
+      <span class="special">,</span> <span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">()</span>
+    <span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">BOOST_CHECK</span><span class="special">(</span>
+    <span class="number">42</span> <span class="special">==</span> <span class="identifier">get</span><span class="special">(</span>
+        <span class="special">*</span><span class="identifier">binary_descendant</span><span class="special">(&</span><span class="identifier">gui_root</span><span class="special">,</span> <span class="number">68</span><span class="special">,</span> <span class="identifier">GUIBinaryCompare</span><span class="special">())</span>
+      <span class="special">,</span> <span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">()</span>
+    <span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">BOOST_CHECK</span><span class="special">(</span>
+    <span class="number">42</span> <span class="special">==</span> <span class="identifier">get</span><span class="special">(</span>
+        <span class="special">*</span><span class="identifier">binary_descendant</span><span class="special">(&</span><span class="identifier">gui_root</span><span class="special">,</span> <span class="number">69</span><span class="special">,</span> <span class="identifier">GUIBinaryCompare</span><span class="special">())</span>
+      <span class="special">,</span> <span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">()</span>
+    <span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">BOOST_CHECK</span><span class="special">(</span>
+    <span class="number">42</span> <span class="special">==</span> <span class="identifier">get</span><span class="special">(</span>
+        <span class="special">*</span><span class="identifier">binary_descendant</span><span class="special">(&</span><span class="identifier">gui_root</span><span class="special">,</span> <span class="number">70</span><span class="special">,</span> <span class="identifier">GUIBinaryCompare</span><span class="special">())</span>
+      <span class="special">,</span> <span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">()</span>
+    <span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">BOOST_CHECK</span><span class="special">(</span>
+    <span class="number">42</span> <span class="special">==</span> <span class="identifier">get</span><span class="special">(</span>
+        <span class="special">*</span><span class="identifier">binary_descendant</span><span class="special">(&</span><span class="identifier">gui_root</span><span class="special">,</span> <span class="number">71</span><span class="special">,</span> <span class="identifier">GUIBinaryCompare</span><span class="special">())</span>
+      <span class="special">,</span> <span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">()</span>
+    <span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">BOOST_CHECK</span><span class="special">(</span>
+    <span class="number">42</span> <span class="special">==</span> <span class="identifier">get</span><span class="special">(</span>
+        <span class="special">*</span><span class="identifier">binary_descendant</span><span class="special">(&</span><span class="identifier">gui_root</span><span class="special">,</span> <span class="number">72</span><span class="special">,</span> <span class="identifier">GUIBinaryCompare</span><span class="special">())</span>
+      <span class="special">,</span> <span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">()</span>
+    <span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">BOOST_CHECK</span><span class="special">(</span>
+    <span class="number">42</span> <span class="special">==</span> <span class="identifier">get</span><span class="special">(</span>
+        <span class="special">*</span><span class="identifier">binary_descendant</span><span class="special">(&</span><span class="identifier">gui_root</span><span class="special">,</span> <span class="number">73</span><span class="special">,</span> <span class="identifier">GUIBinaryCompare</span><span class="special">())</span>
+      <span class="special">,</span> <span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">()</span>
+    <span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">BOOST_CHECK</span><span class="special">(</span>
+    <span class="number">42</span> <span class="special">==</span> <span class="identifier">get</span><span class="special">(</span>
+        <span class="special">*</span><span class="identifier">binary_descendant</span><span class="special">(&</span><span class="identifier">gui_root</span><span class="special">,</span> <span class="number">74</span><span class="special">,</span> <span class="identifier">GUIBinaryCompare</span><span class="special">())</span>
+      <span class="special">,</span> <span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">()</span>
+    <span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">BOOST_CHECK</span><span class="special">(</span>
+    <span class="number">42</span> <span class="special">==</span> <span class="identifier">get</span><span class="special">(</span>
+        <span class="special">*</span><span class="identifier">binary_descendant</span><span class="special">(&</span><span class="identifier">gui_root</span><span class="special">,</span> <span class="number">75</span><span class="special">,</span> <span class="identifier">GUIBinaryCompare</span><span class="special">())</span>
+      <span class="special">,</span> <span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">()</span>
+    <span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">BOOST_CHECK</span><span class="special">(</span>
+    <span class="number">42</span> <span class="special">==</span> <span class="identifier">get</span><span class="special">(</span>
+        <span class="special">*</span><span class="identifier">binary_descendant</span><span class="special">(&</span><span class="identifier">gui_root</span><span class="special">,</span> <span class="number">76</span><span class="special">,</span> <span class="identifier">GUIBinaryCompare</span><span class="special">())</span>
+      <span class="special">,</span> <span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">()</span>
+    <span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">BOOST_CHECK</span><span class="special">(</span>
+    <span class="number">51</span> <span class="special">==</span> <span class="identifier">get</span><span class="special">(</span>
+        <span class="special">*</span><span class="identifier">binary_descendant</span><span class="special">(&</span><span class="identifier">gui_root</span><span class="special">,</span> <span class="number">77</span><span class="special">,</span> <span class="identifier">GUIBinaryCompare</span><span class="special">())</span>
+      <span class="special">,</span> <span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">()</span>
+    <span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">BOOST_CHECK</span><span class="special">(</span>
+    <span class="number">51</span> <span class="special">==</span> <span class="identifier">get</span><span class="special">(</span>
+        <span class="special">*</span><span class="identifier">binary_descendant</span><span class="special">(&</span><span class="identifier">gui_root</span><span class="special">,</span> <span class="number">78</span><span class="special">,</span> <span class="identifier">GUIBinaryCompare</span><span class="special">())</span>
+      <span class="special">,</span> <span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">()</span>
+    <span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">BOOST_CHECK</span><span class="special">(</span>
+    <span class="number">51</span> <span class="special">==</span> <span class="identifier">get</span><span class="special">(</span>
+        <span class="special">*</span><span class="identifier">binary_descendant</span><span class="special">(&</span><span class="identifier">gui_root</span><span class="special">,</span> <span class="number">79</span><span class="special">,</span> <span class="identifier">GUIBinaryCompare</span><span class="special">())</span>
+      <span class="special">,</span> <span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">()</span>
+    <span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">BOOST_CHECK</span><span class="special">(</span>
+    <span class="number">51</span> <span class="special">==</span> <span class="identifier">get</span><span class="special">(</span>
+        <span class="special">*</span><span class="identifier">binary_descendant</span><span class="special">(&</span><span class="identifier">gui_root</span><span class="special">,</span> <span class="number">80</span><span class="special">,</span> <span class="identifier">GUIBinaryCompare</span><span class="special">())</span>
+      <span class="special">,</span> <span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">()</span>
+    <span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">BOOST_CHECK</span><span class="special">(</span>
+    <span class="number">51</span> <span class="special">==</span> <span class="identifier">get</span><span class="special">(</span>
+        <span class="special">*</span><span class="identifier">binary_descendant</span><span class="special">(&</span><span class="identifier">gui_root</span><span class="special">,</span> <span class="number">81</span><span class="special">,</span> <span class="identifier">GUIBinaryCompare</span><span class="special">())</span>
+      <span class="special">,</span> <span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">()</span>
+    <span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">BOOST_CHECK</span><span class="special">(</span>
+    <span class="number">51</span> <span class="special">==</span> <span class="identifier">get</span><span class="special">(</span>
+        <span class="special">*</span><span class="identifier">binary_descendant</span><span class="special">(&</span><span class="identifier">gui_root</span><span class="special">,</span> <span class="number">82</span><span class="special">,</span> <span class="identifier">GUIBinaryCompare</span><span class="special">())</span>
+      <span class="special">,</span> <span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">()</span>
+    <span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">BOOST_CHECK</span><span class="special">(</span>
+    <span class="number">51</span> <span class="special">==</span> <span class="identifier">get</span><span class="special">(</span>
+        <span class="special">*</span><span class="identifier">binary_descendant</span><span class="special">(&</span><span class="identifier">gui_root</span><span class="special">,</span> <span class="number">83</span><span class="special">,</span> <span class="identifier">GUIBinaryCompare</span><span class="special">())</span>
+      <span class="special">,</span> <span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">()</span>
+    <span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">BOOST_CHECK</span><span class="special">(</span>
+    <span class="number">51</span> <span class="special">==</span> <span class="identifier">get</span><span class="special">(</span>
+        <span class="special">*</span><span class="identifier">binary_descendant</span><span class="special">(&</span><span class="identifier">gui_root</span><span class="special">,</span> <span class="number">84</span><span class="special">,</span> <span class="identifier">GUIBinaryCompare</span><span class="special">())</span>
+      <span class="special">,</span> <span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">()</span>
+    <span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">BOOST_CHECK</span><span class="special">(</span>
+    <span class="number">51</span> <span class="special">==</span> <span class="identifier">get</span><span class="special">(</span>
+        <span class="special">*</span><span class="identifier">binary_descendant</span><span class="special">(&</span><span class="identifier">gui_root</span><span class="special">,</span> <span class="number">85</span><span class="special">,</span> <span class="identifier">GUIBinaryCompare</span><span class="special">())</span>
+      <span class="special">,</span> <span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">()</span>
+    <span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">BOOST_CHECK</span><span class="special">(</span>
+    <span class="number">51</span> <span class="special">==</span> <span class="identifier">get</span><span class="special">(</span>
+        <span class="special">*</span><span class="identifier">binary_descendant</span><span class="special">(&</span><span class="identifier">gui_root</span><span class="special">,</span> <span class="number">86</span><span class="special">,</span> <span class="identifier">GUIBinaryCompare</span><span class="special">())</span>
+      <span class="special">,</span> <span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">()</span>
+    <span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">BOOST_CHECK</span><span class="special">(</span>
+    <span class="number">51</span> <span class="special">==</span> <span class="identifier">get</span><span class="special">(</span>
+        <span class="special">*</span><span class="identifier">binary_descendant</span><span class="special">(&</span><span class="identifier">gui_root</span><span class="special">,</span> <span class="number">87</span><span class="special">,</span> <span class="identifier">GUIBinaryCompare</span><span class="special">())</span>
+      <span class="special">,</span> <span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">()</span>
+    <span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">BOOST_CHECK</span><span class="special">(</span>
+    <span class="number">55</span> <span class="special">==</span> <span class="identifier">get</span><span class="special">(</span>
+        <span class="special">*</span><span class="identifier">binary_descendant</span><span class="special">(&</span><span class="identifier">gui_root</span><span class="special">,</span> <span class="number">88</span><span class="special">,</span> <span class="identifier">GUIBinaryCompare</span><span class="special">())</span>
+      <span class="special">,</span> <span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">()</span>
+    <span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">BOOST_CHECK</span><span class="special">(</span>
+    <span class="number">55</span> <span class="special">==</span> <span class="identifier">get</span><span class="special">(</span>
+        <span class="special">*</span><span class="identifier">binary_descendant</span><span class="special">(&</span><span class="identifier">gui_root</span><span class="special">,</span> <span class="number">89</span><span class="special">,</span> <span class="identifier">GUIBinaryCompare</span><span class="special">())</span>
+      <span class="special">,</span> <span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">()</span>
+    <span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">BOOST_CHECK</span><span class="special">(</span>
+    <span class="number">55</span> <span class="special">==</span> <span class="identifier">get</span><span class="special">(</span>
+        <span class="special">*</span><span class="identifier">binary_descendant</span><span class="special">(&</span><span class="identifier">gui_root</span><span class="special">,</span> <span class="number">90</span><span class="special">,</span> <span class="identifier">GUIBinaryCompare</span><span class="special">())</span>
+      <span class="special">,</span> <span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">()</span>
+    <span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">BOOST_CHECK</span><span class="special">(</span>
+    <span class="number">55</span> <span class="special">==</span> <span class="identifier">get</span><span class="special">(</span>
+        <span class="special">*</span><span class="identifier">binary_descendant</span><span class="special">(&</span><span class="identifier">gui_root</span><span class="special">,</span> <span class="number">91</span><span class="special">,</span> <span class="identifier">GUIBinaryCompare</span><span class="special">())</span>
+      <span class="special">,</span> <span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">()</span>
+    <span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">BOOST_CHECK</span><span class="special">(</span>
+    <span class="number">55</span> <span class="special">==</span> <span class="identifier">get</span><span class="special">(</span>
+        <span class="special">*</span><span class="identifier">binary_descendant</span><span class="special">(&</span><span class="identifier">gui_root</span><span class="special">,</span> <span class="number">92</span><span class="special">,</span> <span class="identifier">GUIBinaryCompare</span><span class="special">())</span>
+      <span class="special">,</span> <span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">()</span>
+    <span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">BOOST_CHECK</span><span class="special">(</span>
+    <span class="number">55</span> <span class="special">==</span> <span class="identifier">get</span><span class="special">(</span>
+        <span class="special">*</span><span class="identifier">binary_descendant</span><span class="special">(&</span><span class="identifier">gui_root</span><span class="special">,</span> <span class="number">93</span><span class="special">,</span> <span class="identifier">GUIBinaryCompare</span><span class="special">())</span>
+      <span class="special">,</span> <span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">()</span>
+    <span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">BOOST_CHECK</span><span class="special">(</span>
+    <span class="number">55</span> <span class="special">==</span> <span class="identifier">get</span><span class="special">(</span>
+        <span class="special">*</span><span class="identifier">binary_descendant</span><span class="special">(&</span><span class="identifier">gui_root</span><span class="special">,</span> <span class="number">94</span><span class="special">,</span> <span class="identifier">GUIBinaryCompare</span><span class="special">())</span>
+      <span class="special">,</span> <span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">()</span>
+    <span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">BOOST_CHECK</span><span class="special">(</span>
+    <span class="number">55</span> <span class="special">==</span> <span class="identifier">get</span><span class="special">(</span>
+        <span class="special">*</span><span class="identifier">binary_descendant</span><span class="special">(&</span><span class="identifier">gui_root</span><span class="special">,</span> <span class="number">95</span><span class="special">,</span> <span class="identifier">GUIBinaryCompare</span><span class="special">())</span>
+      <span class="special">,</span> <span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">()</span>
+    <span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">BOOST_CHECK</span><span class="special">(</span>
+    <span class="number">55</span> <span class="special">==</span> <span class="identifier">get</span><span class="special">(</span>
+        <span class="special">*</span><span class="identifier">binary_descendant</span><span class="special">(&</span><span class="identifier">gui_root</span><span class="special">,</span> <span class="number">96</span><span class="special">,</span> <span class="identifier">GUIBinaryCompare</span><span class="special">())</span>
+      <span class="special">,</span> <span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">()</span>
+    <span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">BOOST_CHECK</span><span class="special">(</span>
+    <span class="number">55</span> <span class="special">==</span> <span class="identifier">get</span><span class="special">(</span>
+        <span class="special">*</span><span class="identifier">binary_descendant</span><span class="special">(&</span><span class="identifier">gui_root</span><span class="special">,</span> <span class="number">97</span><span class="special">,</span> <span class="identifier">GUIBinaryCompare</span><span class="special">())</span>
+      <span class="special">,</span> <span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">()</span>
+    <span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">BOOST_CHECK</span><span class="special">(</span>
+    <span class="number">55</span> <span class="special">==</span> <span class="identifier">get</span><span class="special">(</span>
+        <span class="special">*</span><span class="identifier">binary_descendant</span><span class="special">(&</span><span class="identifier">gui_root</span><span class="special">,</span> <span class="number">98</span><span class="special">,</span> <span class="identifier">GUIBinaryCompare</span><span class="special">())</span>
+      <span class="special">,</span> <span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">()</span>
+    <span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">BOOST_CHECK</span><span class="special">(</span>
+    <span class="number">55</span> <span class="special">==</span> <span class="identifier">get</span><span class="special">(</span>
+        <span class="special">*</span><span class="identifier">binary_descendant</span><span class="special">(&</span><span class="identifier">gui_root</span><span class="special">,</span> <span class="number">99</span><span class="special">,</span> <span class="identifier">GUIBinaryCompare</span><span class="special">())</span>
+      <span class="special">,</span> <span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">()</span>
+    <span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">BOOST_CHECK</span><span class="special">(</span>
+    <span class="number">55</span> <span class="special">==</span> <span class="identifier">get</span><span class="special">(</span>
+        <span class="special">*</span><span class="identifier">binary_descendant</span><span class="special">(&</span><span class="identifier">gui_root</span><span class="special">,</span> <span class="number">100</span><span class="special">,</span> <span class="identifier">GUIBinaryCompare</span><span class="special">())</span>
+      <span class="special">,</span> <span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">()</span>
+    <span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">BOOST_CHECK</span><span class="special">(</span>
+    <span class="number">59</span> <span class="special">==</span> <span class="identifier">get</span><span class="special">(</span>
+        <span class="special">*</span><span class="identifier">binary_descendant</span><span class="special">(&</span><span class="identifier">gui_root</span><span class="special">,</span> <span class="number">101</span><span class="special">,</span> <span class="identifier">GUIBinaryCompare</span><span class="special">())</span>
+      <span class="special">,</span> <span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">()</span>
+    <span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">BOOST_CHECK</span><span class="special">(</span>
+    <span class="number">59</span> <span class="special">==</span> <span class="identifier">get</span><span class="special">(</span>
+        <span class="special">*</span><span class="identifier">binary_descendant</span><span class="special">(&</span><span class="identifier">gui_root</span><span class="special">,</span> <span class="number">102</span><span class="special">,</span> <span class="identifier">GUIBinaryCompare</span><span class="special">())</span>
+      <span class="special">,</span> <span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">()</span>
+    <span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">BOOST_CHECK</span><span class="special">(</span>
+    <span class="number">59</span> <span class="special">==</span> <span class="identifier">get</span><span class="special">(</span>
+        <span class="special">*</span><span class="identifier">binary_descendant</span><span class="special">(&</span><span class="identifier">gui_root</span><span class="special">,</span> <span class="number">103</span><span class="special">,</span> <span class="identifier">GUIBinaryCompare</span><span class="special">())</span>
+      <span class="special">,</span> <span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">()</span>
+    <span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">BOOST_CHECK</span><span class="special">(</span>
+    <span class="number">59</span> <span class="special">==</span> <span class="identifier">get</span><span class="special">(</span>
+        <span class="special">*</span><span class="identifier">binary_descendant</span><span class="special">(&</span><span class="identifier">gui_root</span><span class="special">,</span> <span class="number">104</span><span class="special">,</span> <span class="identifier">GUIBinaryCompare</span><span class="special">())</span>
+      <span class="special">,</span> <span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">()</span>
+    <span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">BOOST_CHECK</span><span class="special">(</span>
+    <span class="number">59</span> <span class="special">==</span> <span class="identifier">get</span><span class="special">(</span>
+        <span class="special">*</span><span class="identifier">binary_descendant</span><span class="special">(&</span><span class="identifier">gui_root</span><span class="special">,</span> <span class="number">105</span><span class="special">,</span> <span class="identifier">GUIBinaryCompare</span><span class="special">())</span>
+      <span class="special">,</span> <span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">()</span>
+    <span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">BOOST_CHECK</span><span class="special">(</span>
+    <span class="number">59</span> <span class="special">==</span> <span class="identifier">get</span><span class="special">(</span>
+        <span class="special">*</span><span class="identifier">binary_descendant</span><span class="special">(&</span><span class="identifier">gui_root</span><span class="special">,</span> <span class="number">106</span><span class="special">,</span> <span class="identifier">GUIBinaryCompare</span><span class="special">())</span>
+      <span class="special">,</span> <span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">()</span>
+    <span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">BOOST_CHECK</span><span class="special">(</span>
+    <span class="number">59</span> <span class="special">==</span> <span class="identifier">get</span><span class="special">(</span>
+        <span class="special">*</span><span class="identifier">binary_descendant</span><span class="special">(&</span><span class="identifier">gui_root</span><span class="special">,</span> <span class="number">107</span><span class="special">,</span> <span class="identifier">GUIBinaryCompare</span><span class="special">())</span>
+      <span class="special">,</span> <span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">()</span>
+    <span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">BOOST_CHECK</span><span class="special">(</span>
+    <span class="number">59</span> <span class="special">==</span> <span class="identifier">get</span><span class="special">(</span>
+        <span class="special">*</span><span class="identifier">binary_descendant</span><span class="special">(&</span><span class="identifier">gui_root</span><span class="special">,</span> <span class="number">108</span><span class="special">,</span> <span class="identifier">GUIBinaryCompare</span><span class="special">())</span>
+      <span class="special">,</span> <span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">()</span>
+    <span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">BOOST_CHECK</span><span class="special">(</span>
+    <span class="number">59</span> <span class="special">==</span> <span class="identifier">get</span><span class="special">(</span>
+        <span class="special">*</span><span class="identifier">binary_descendant</span><span class="special">(&</span><span class="identifier">gui_root</span><span class="special">,</span> <span class="number">109</span><span class="special">,</span> <span class="identifier">GUIBinaryCompare</span><span class="special">())</span>
+      <span class="special">,</span> <span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">()</span>
+    <span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">BOOST_CHECK</span><span class="special">(</span>
+    <span class="number">59</span> <span class="special">==</span> <span class="identifier">get</span><span class="special">(</span>
+        <span class="special">*</span><span class="identifier">binary_descendant</span><span class="special">(&</span><span class="identifier">gui_root</span><span class="special">,</span> <span class="number">110</span><span class="special">,</span> <span class="identifier">GUIBinaryCompare</span><span class="special">())</span>
+      <span class="special">,</span> <span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">()</span>
+    <span class="special">)</span>
+<span class="special">);</span>
+<span class="identifier">BOOST_CHECK</span><span class="special">(</span>
+    <span class="number">59</span> <span class="special">==</span> <span class="identifier">get</span><span class="special">(</span>
+        <span class="special">*</span><span class="identifier">binary_descendant</span><span class="special">(&</span><span class="identifier">gui_root</span><span class="special">,</span> <span class="number">111</span><span class="special">,</span> <span class="identifier">GUIBinaryCompare</span><span class="special">())</span>
+      <span class="special">,</span> <span class="identifier">example_keys</span><span class="special">::</span><span class="identifier">row_number</span><span class="special">()</span>
+    <span class="special">)</span>
+<span class="special">);</span>
+</pre>
+<p>
+          The complete program source can be found here: <example/type_definitions.hpp>
+          and <test/binary_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-2013 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="with_accumulation_gen.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="with_accumulation_base_gen.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/with_accumulation_base_gen.html
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/with_accumulation_base_gen.html	2013-07-07 14:52:52 EDT (Sun, 07 Jul 2013)	(r84977)
@@ -0,0 +1,199 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>with_accumulation_base_gen<BaseGenerator></title>
+<link rel="stylesheet" href="http://www.boost.org/doc/libs/release/doc/src/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.77.1">
+<link rel="home" href="../../index.html" title="Chapter 1. tree_node 0.5">
+<link rel="up" href="../reference.html" title="Reference">
+<link rel="prev" href="with_accumulation_base.html" title="with_accumulation_base< Derived , BaseGenerator , T1 , T2 , Key , Tag , IncludesAllDescendants , IncludesRoot , Value >">
+<link rel="next" href="with_count.html" title="with_count<BaseGenerator,T1,T2,Count>">
+</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="with_accumulation_base.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="with_count.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="tree_node.reference.with_accumulation_base_gen"></a><a class="link" href="with_accumulation_base_gen.html" title="with_accumulation_base_gen<BaseGenerator>"><code class="computeroutput"><span class="identifier">with_accumulation_base_gen</span><span class="special"><</span><span class="identifier">BaseGenerator</span><span class="special">></span></code>
+      </a>
+</h3></div></div></div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.with_accumulation_base_gen.synopsis"></a><a class="link" href="with_accumulation_base_gen.html#tree_node.reference.with_accumulation_base_gen.synopsis" title="Synopsis">Synopsis</a>
+</h4></div></div></div>
+<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">BaseGenerator</span>
+      <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">AccumulationKey</span> <span class="special">=</span> <span class="identifier">default_accumulation_key</span>
+    <span class="special">></span>
+    <span class="keyword">struct</span> <span class="identifier">with_accumulation_base_gen</span>
+    <span class="special">{</span>
+        <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">Derived</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">T2</span> <span class="special">=</span> <span class="keyword">void</span><span class="special">></span>
+        <span class="keyword">struct</span> <span class="identifier">apply</span>
+        <span class="special">{</span>
+            <span class="keyword">typedef</span> <span class="identifier">with_accumulation_base</span><span class="special"><</span>
+                        <span class="identifier">Derived</span>
+                      <span class="special">,</span> <span class="identifier">BaseGenerator</span>
+                      <span class="special">,</span> <span class="identifier">T1</span>
+                      <span class="special">,</span> <span class="identifier">T2</span>
+                      <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">AccumulationKey</span><span class="special">::</span><span class="identifier">key</span>
+                      <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">AccumulationKey</span><span class="special">::</span><span class="identifier">tag</span>
+                      <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">AccumulationKey</span><span class="special">::</span><span class="identifier">includes_all_descendants</span>
+                      <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">AccumulationKey</span><span class="special">::</span><span class="identifier">includes_root</span>
+                      <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">AccumulationKey</span><span class="special">::</span><span class="identifier">value</span>
+                    <span class="special">></span>
+                    <span class="identifier">type</span><span class="special">;</span>
+        <span class="special">};</span>
+    <span class="special">};</span>
+<span class="special">}}</span>  <span class="comment">// namespace boost::tree_node</span>
+</pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.with_accumulation_base_gen.description"></a><a class="link" href="with_accumulation_base_gen.html#tree_node.reference.with_accumulation_base_gen.description" title="Description">Description</a>
+</h4></div></div></div>
+<p>
+          Selector that can be passed on to generic functions and/or data structures
+          that use <a class="link" href="../concepts/base_tree_node.html" title="Base Tree Node"><span class="bold"><strong>Base
+          Tree Node</strong></span></a> models with statistical metadata. The <code class="computeroutput"><span class="identifier">BaseGenerator</span></code> template argument allows
+          the same models to incorporate other data that the same or other functions
+          and/or data structures might need.
+        </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.with_accumulation_base_gen.definition"></a><a class="link" href="with_accumulation_base_gen.html#tree_node.reference.with_accumulation_base_gen.definition" title="Where defined">Where
+        defined</a>
+</h4></div></div></div>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span>boost/tree_node/with_accumulation.hpp<span class="special">></span>
+</pre>
+<p>
+          To register under Boost.Typeof:
+        </p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span>boost/typeof/boost/tree_node/with_accumulation.hpp<span class="special">></span>
+</pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.with_accumulation_base_gen.model_of"></a><a class="link" href="with_accumulation_base_gen.html#tree_node.reference.with_accumulation_base_gen.model_of" title="Model of">Model
+        of</a>
+</h4></div></div></div>
+<p>
+          <a class="link" href="../concepts/base_type_generator.html" title="Base Type Generator"><span class="bold"><strong>Base
+          Type Generator</strong></span></a>
+        </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.with_accumulation_base_gen.tpl_param"></a><a class="link" href="with_accumulation_base_gen.html#tree_node.reference.with_accumulation_base_gen.tpl_param" title="Template Parameters">Template
+        Parameters</a>
+</h4></div></div></div>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+                  <p>
+                    Parameter
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Description
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Default
+                  </p>
+                </th>
+</tr></thead>
+<tbody><tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">BaseGenerator</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    The <a class="link" href="../concepts/base_type_generator.html" title="Base Type Generator"><span class="bold"><strong>Base Type Generator</strong></span></a> from whose
+                    return type <a class="link" href="with_accumulation_base.html" title="with_accumulation_base< Derived , BaseGenerator , T1 , T2 , Key , Tag , IncludesAllDescendants , IncludesRoot , Value >"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">with_accumulation_base</span></code></a>
+                    will inherit.
+                  </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.with_accumulation_base_gen.expressions"></a><a class="link" href="with_accumulation_base_gen.html#tree_node.reference.with_accumulation_base_gen.expressions" title="Expression Semantics">Expression
+        Semantics</a>
+</h4></div></div></div>
+<p>
+          Let <code class="computeroutput"><span class="identifier">Derived</span></code> be the type
+          that will inherit from <a class="link" href="with_accumulation_base.html" title="with_accumulation_base< Derived , BaseGenerator , T1 , T2 , Key , Tag , IncludesAllDescendants , IncludesRoot , Value >"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">with_accumulation_base</span></code></a>.
+        </p>
+<p>
+          Let <code class="computeroutput"><span class="identifier">Key</span></code> be the key type.
+        </p>
+<p>
+          Let <code class="computeroutput"><span class="identifier">Data</span></code> be the user data
+          type.
+        </p>
+<p>
+          Let <code class="computeroutput"><span class="identifier">BaseGenerator</span></code> be a
+          valid <code class="computeroutput"><span class="identifier">with_accumulation_base_gen</span></code>
+          template argument.
+        </p>
+<pre class="programlisting"><span class="keyword">typedef</span> boost::mpl::apply_wrap3<span class="special"><</span>
+    <span class="identifier">with_accumulation_base_gen</span><span class="special"><</span><span class="identifier">BaseGenerator</span><span class="special">></span>
+  <span class="special">,</span> <span class="identifier">Derived</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">type</span> <span class="identifier">r</span><span class="special">;</span>
+</pre>
+<p>
+          <span class="bold"><strong>Return type:</strong></span> <code class="literal"><a class="link" href="with_accumulation_base.html" title="with_accumulation_base< Derived , BaseGenerator , T1 , T2 , Key , Tag , IncludesAllDescendants , IncludesRoot , Value >"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">with_accumulation_base</span></code></a><Derived,BaseGenerator,Key,Data></code>
+        </p>
+<pre class="programlisting"><span class="keyword">typedef</span> boost::mpl::apply_wrap2<span class="special"><</span>
+    <span class="identifier">with_accumulation_base_gen</span><span class="special"><</span><span class="identifier">BaseGenerator</span><span class="special">></span>
+  <span class="special">,</span> <span class="identifier">Derived</span>
+  <span class="special">,</span> <span class="identifier">Data</span>
+<span class="special">>::</span><span class="identifier">type</span> <span class="identifier">r</span><span class="special">;</span>
+</pre>
+<p>
+          <span class="bold"><strong>Return type:</strong></span> <code class="literal"><a class="link" href="with_accumulation_base.html" title="with_accumulation_base< Derived , BaseGenerator , T1 , T2 , Key , Tag , IncludesAllDescendants , IncludesRoot , Value >"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">with_accumulation_base</span></code></a><Derived,BaseGenerator,Data,void></code>
+        </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.with_accumulation_base_gen.complexity"></a><a class="link" href="with_accumulation_base_gen.html#tree_node.reference.with_accumulation_base_gen.complexity" title="Complexity">Complexity</a>
+</h4></div></div></div>
+<p>
+          Compile time.
+        </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-2013 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="with_accumulation_base.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="with_count.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/with_accumulation_gen.html
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/with_accumulation_gen.html	2013-07-07 14:52:52 EDT (Sun, 07 Jul 2013)	(r84977)
@@ -0,0 +1,182 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>with_accumulation_gen<BaseGenerator></title>
+<link rel="stylesheet" href="http://www.boost.org/doc/libs/release/doc/src/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.77.1">
+<link rel="home" href="../../index.html" title="Chapter 1. tree_node 0.5">
+<link rel="up" href="../reference.html" title="Reference">
+<link rel="prev" href="with_accumulation.html" title="with_accumulation<BaseGenerator,T1,T2,AccumulationKey>">
+<link rel="next" href="with_accumulation_base.html" title="with_accumulation_base< Derived , BaseGenerator , T1 , T2 , Key , Tag , IncludesAllDescendants , IncludesRoot , Value >">
+</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="with_accumulation.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="with_accumulation_base.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="tree_node.reference.with_accumulation_gen"></a><a class="link" href="with_accumulation_gen.html" title="with_accumulation_gen<BaseGenerator>"><code class="computeroutput"><span class="identifier">with_accumulation_gen</span><span class="special"><</span><span class="identifier">BaseGenerator</span><span class="special">></span></code></a>
+</h3></div></div></div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.with_accumulation_gen.synopsis"></a><a class="link" href="with_accumulation_gen.html#tree_node.reference.with_accumulation_gen.synopsis" title="Synopsis">Synopsis</a>
+</h4></div></div></div>
+<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">BaseGenerator</span>
+      <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">AccumulationKey</span> <span class="special">=</span> <span class="identifier">default_accumulation_key</span>
+    <span class="special">></span>
+    <span class="keyword">struct</span> <span class="identifier">with_accumulation_gen</span>
+    <span class="special">{</span>
+        <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">Derived</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">T2</span> <span class="special">=</span> <span class="keyword">void</span><span class="special">></span>
+        <span class="keyword">struct</span> <span class="identifier">apply</span>
+        <span class="special">{</span>
+            <span class="keyword">typedef</span> <span class="identifier">with_accumulation</span><span class="special"><</span><span class="identifier">BaseGenerator</span><span class="special">,</span><span class="identifier">T1</span><span class="special">,</span><span class="identifier">T2</span><span class="special">,</span><span class="identifier">AccumulationKey</span><span class="special">></span>
+                    <span class="identifier">type</span><span class="special">;</span>
+        <span class="special">};</span>
+    <span class="special">};</span>
+<span class="special">}}</span>  <span class="comment">// namespace boost::tree_node</span>
+</pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.with_accumulation_gen.description"></a><a class="link" href="with_accumulation_gen.html#tree_node.reference.with_accumulation_gen.description" title="Description">Description</a>
+</h4></div></div></div>
+<p>
+          Selector that can be passed on to generic functions and/or data structures
+          that use <a class="link" href="../concepts/tree_node.html" title="Tree Node"><span class="bold"><strong>Tree
+          Node</strong></span></a> models with statistical metadata. The <code class="computeroutput"><span class="identifier">BaseGenerator</span></code> template argument allows
+          the same models to incorporate other data that the same or other functions
+          and/or data structures might need.
+        </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.with_accumulation_gen.definition"></a><a class="link" href="with_accumulation_gen.html#tree_node.reference.with_accumulation_gen.definition" title="Where defined">Where
+        defined</a>
+</h4></div></div></div>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span>boost/tree_node/with_accumulation.hpp<span class="special">></span>
+</pre>
+<p>
+          To register under Boost.Typeof:
+        </p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span>boost/typeof/boost/tree_node/with_accumulation.hpp<span class="special">></span>
+</pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.with_accumulation_gen.model_of"></a><a class="link" href="with_accumulation_gen.html#tree_node.reference.with_accumulation_gen.model_of" title="Model of">Model
+        of</a>
+</h4></div></div></div>
+<p>
+          <a class="link" href="../concepts/node_type_generator.html" title="Node Type Generator"><span class="bold"><strong>Node
+          Type Generator</strong></span></a>
+        </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.with_accumulation_gen.tpl_param"></a><a class="link" href="with_accumulation_gen.html#tree_node.reference.with_accumulation_gen.tpl_param" title="Template Parameters">Template
+        Parameters</a>
+</h4></div></div></div>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+                  <p>
+                    Parameter
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Description
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Default
+                  </p>
+                </th>
+</tr></thead>
+<tbody><tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">BaseGenerator</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    The <a class="link" href="../concepts/base_type_generator.html" title="Base Type Generator"><span class="bold"><strong>Base Type Generator</strong></span></a> from whose
+                    return type <a class="link" href="with_accumulation.html" title="with_accumulation<BaseGenerator,T1,T2,AccumulationKey>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">with_accumulation</span></code></a> will
+                    ultimately inherit.
+                  </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.with_accumulation_gen.expressions"></a><a class="link" href="with_accumulation_gen.html#tree_node.reference.with_accumulation_gen.expressions" title="Expression Semantics">Expression
+        Semantics</a>
+</h4></div></div></div>
+<p>
+          Let <code class="computeroutput"><span class="identifier">Key</span></code> be the key type.
+        </p>
+<p>
+          Let <code class="computeroutput"><span class="identifier">Data</span></code> be the user data
+          type.
+        </p>
+<p>
+          Let <code class="computeroutput"><span class="identifier">BaseGenerator</span></code> be a
+          valid <code class="computeroutput"><span class="identifier">with_accumulation_gen</span></code>
+          template argument.
+        </p>
+<pre class="programlisting"><span class="keyword">typedef</span> boost::mpl::apply_wrap2<span class="special"><</span>
+    <span class="identifier">with_accumulator_gen</span><span class="special"><</span><span class="identifier">BaseGenerator</span><span class="special">></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">type</span> <span class="identifier">r</span><span class="special">;</span>
+</pre>
+<p>
+          <span class="bold"><strong>Return type:</strong></span> <code class="literal"><a class="link" href="with_accumulation.html" title="with_accumulation<BaseGenerator,T1,T2,AccumulationKey>">tree_node::with_accumulation</a><BaseGenerator,Key,Data></code>
+        </p>
+<pre class="programlisting"><span class="keyword">typedef</span> boost::mpl::apply_wrap1<span class="special"><</span>
+    <span class="identifier">with_accumulation_gen</span><span class="special"><</span><span class="identifier">BaseGenerator</span><span class="special">></span>
+  <span class="special">,</span> <span class="identifier">Data</span>
+<span class="special">>::</span><span class="identifier">type</span> <span class="identifier">r</span><span class="special">;</span>
+</pre>
+<p>
+          <span class="bold"><strong>Return type:</strong></span> <code class="literal"><a class="link" href="with_accumulation.html" title="with_accumulation<BaseGenerator,T1,T2,AccumulationKey>">tree_node::with_accumulation</a><BaseGenerator,Data,void></code>
+        </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.with_accumulation_gen.complexity"></a><a class="link" href="with_accumulation_gen.html#tree_node.reference.with_accumulation_gen.complexity" title="Complexity">Complexity</a>
+</h4></div></div></div>
+<p>
+          Compile time.
+        </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-2013 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="with_accumulation.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="with_accumulation_base.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/with_count.html
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/with_count.html	2013-07-07 14:52:52 EDT (Sun, 07 Jul 2013)	(r84977)
@@ -0,0 +1,381 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>with_count<BaseGenerator,T1,T2,Count></title>
+<link rel="stylesheet" href="http://www.boost.org/doc/libs/release/doc/src/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.77.1">
+<link rel="home" href="../../index.html" title="Chapter 1. tree_node 0.5">
+<link rel="up" href="../reference.html" title="Reference">
+<link rel="prev" href="with_accumulation_base_gen.html" title="with_accumulation_base_gen<BaseGenerator>">
+<link rel="next" href="with_count_gen.html" title="with_count_gen<BaseGenerator>">
+</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="with_accumulation_base_gen.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="with_count_gen.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="tree_node.reference.with_count"></a><a class="link" href="with_count.html" title="with_count<BaseGenerator,T1,T2,Count>"><code class="computeroutput"><span class="identifier">with_count</span><span class="special"><</span><span class="identifier">BaseGenerator</span><span class="special">,</span><span class="identifier">T1</span><span class="special">,</span><span class="identifier">T2</span><span class="special">,</span><span class="identifier">Count</span><span class="special">></span></code></a>
+</h3></div></div></div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.with_count.description"></a><a class="link" href="with_count.html#tree_node.reference.with_count.description" title="Description">Description</a>
+</h4></div></div></div>
+<p>
+          The <span class="bold"><strong>count</strong></span> of a tree node can be defined
+          as the number of itself plus its descendants. In addition to the operations
+          it inherits from the return type of <code class="computeroutput"><span class="identifier">BaseGenerator</span></code>,
+          this <a class="link" href="../concepts/tree_node.html" title="Tree Node"><span class="bold"><strong>Tree
+          Node</strong></span></a> adaptor provides constant-time access to the count
+          of the node by updating this information after structural modifications
+          have been performed.
+        </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.with_count.definition"></a><a class="link" href="with_count.html#tree_node.reference.with_count.definition" title="Where defined">Where defined</a>
+</h4></div></div></div>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span>boost/tree_node/with_count.hpp<span class="special">></span>
+</pre>
+<p>
+          Forward-declared:
+        </p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span>boost/tree_node/with_count_fwd.hpp<span class="special">></span>
+</pre>
+<p>
+          To register under Boost.Typeof:
+        </p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span>boost/typeof/boost/tree_node/with_count.hpp<span class="special">></span>
+</pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.with_count.tpl_param"></a><a class="link" href="with_count.html#tree_node.reference.with_count.tpl_param" title="Template Parameters">Template
+        Parameters</a>
+</h4></div></div></div>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+                  <p>
+                    Parameter
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Description
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Default
+                  </p>
+                </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">BaseGenerator</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    The <a class="link" href="../concepts/base_type_generator.html" title="Base Type Generator"><span class="bold"><strong>Base Type Generator</strong></span></a> from whose
+                    return type <code class="computeroutput"><span class="identifier">with_count</span></code>
+                    will ultimately inherit.
+                  </p>
+                </td>
+<td>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">T1</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    The key type if <code class="computeroutput"><span class="identifier">T2</span></code>
+                    is not <code class="computeroutput"><span class="keyword">void</span></code>; the
+                    user data type otherwise.
+                  </p>
+                </td>
+<td>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">T2</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    The user data type if not <code class="computeroutput"><span class="keyword">void</span></code>;
+                    ignored otherwise.
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">void</span></code>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">Count</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    The count type.
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</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.with_count.model_of"></a><a class="link" href="with_count.html#tree_node.reference.with_count.model_of" title="Model of">Model of</a>
+</h4></div></div></div>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem"><p>
+              <a class="link" href="../concepts/associative_tree_node.html" title="Associative Tree Node"><span class="bold"><strong>Associative Tree Node</strong></span></a> if <code class="computeroutput"><span class="identifier">T2</span></code> is not <code class="computeroutput"><span class="keyword">void</span></code>;
+              <a class="link" href="../concepts/non_assoc_tree_node.html" title="Non-Associative Tree Node"><span class="bold"><strong>Non-Associative
+              Tree Node</strong></span></a> otherwise
+            </p></li>
+<li class="listitem"><p>
+              any other concept that the return type of <code class="computeroutput"><span class="identifier">BaseGenerator</span></code>
+              models
+            </p></li>
+</ul></div>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.with_count.public_bases"></a><a class="link" href="with_count.html#tree_node.reference.with_count.public_bases" title="Public Base Classes">Public
+        Base Classes</a>
+</h4></div></div></div>
+<pre class="programlisting"><span class="identifier">with_count_base</span><span class="special"><</span>
+    <span class="identifier">with_count</span><span class="special"><</span><span class="identifier">BaseGenerator</span><span class="special">,</span><span class="identifier">T1</span><span class="special">,</span><span class="identifier">T2</span><span class="special">,</span><span class="identifier">Count</span><span class="special">></span>
+  <span class="special">,</span> <span class="identifier">BaseGenerator</span>
+  <span class="special">,</span> <span class="identifier">T1</span>
+  <span class="special">,</span> <span class="identifier">T2</span>
+  <span class="special">,</span> <span class="identifier">Count</span>
+<span class="special">></span>
+</pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.with_count.members"></a><a class="link" href="with_count.html#tree_node.reference.with_count.members" title="Public Members">Public Members</a>
+</h4></div></div></div>
+<p>
+          In addition to those inherited from the return type of <code class="computeroutput"><span class="identifier">BaseGenerator</span></code>,
+          the following members are defined:
+        </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+                  <p>
+                    Name
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Definition
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Where defined
+                  </p>
+                </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+                  <p>
+                    Emplacement constructor
+                  </p>
+                </td>
+<td>
+<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="special">...</span><span class="identifier">Args</span><span class="special">></span>
+<span class="keyword">explicit</span> <span class="identifier">with_count</span><span class="special">(</span><span class="identifier">Args</span><span class="special">&&</span> <span class="special">...</span><span class="identifier">args</span><span class="special">);</span>
+</pre>
+                </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>
+                    Emplacement constructor with allocator
+                  </p>
+                </td>
+<td>
+<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="special">...</span><span class="identifier">Args</span><span class="special">></span>
+<span class="keyword">explicit</span> <span class="identifier">with_count</span><span class="special">(</span>
+    <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">container</span><span class="special">::</span><span class="identifier">allocator_arg_t</span>
+  <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">traits</span><span class="special">::</span><span class="identifier">allocator_reference</span> <span class="identifier">allocator</span>
+  <span class="special">,</span> <span class="identifier">Args</span><span class="special">&&</span> <span class="special">...</span><span class="identifier">args</span>
+<span class="special">);</span>
+</pre>
+                </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>
+                    Copy constructor
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">with_count</span><span class="special">(</span><span class="identifier">with_count</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">copy</span><span class="special">);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <a class="link" href="../concepts/copyable_tree_node.html" title="Copyable Tree Node"><span class="bold"><strong>Copyable Tree Node</strong></span></a>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Copy constructor with allocator
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">with_count</span><span class="special">(</span>
+    <span class="identifier">with_count</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">copy</span>
+  <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">traits</span><span class="special">::</span><span class="identifier">allocator_reference</span> <span class="identifier">allocator</span>
+<span class="special">);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <a class="link" href="../concepts/copyable_tree_node.html" title="Copyable Tree Node"><span class="bold"><strong>Copyable Tree Node</strong></span></a>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Move constructor
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">with_count</span><span class="special">(</span><span class="identifier">with_count</span><span class="special">&&</span> <span class="identifier">source</span><span class="special">);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <a class="link" href="../concepts/movable_tree_node.html" title="Movable Tree Node"><span class="bold"><strong>Movable Tree Node</strong></span></a>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Move constructor with allocator
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">with_count</span><span class="special">(</span>
+    <span class="identifier">with_count</span><span class="special">&&</span> <span class="identifier">source</span>
+  <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">traits</span><span class="special">::</span><span class="identifier">allocator_reference</span> <span class="identifier">allocator</span>
+<span class="special">);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <a class="link" href="../concepts/movable_tree_node.html" title="Movable Tree Node"><span class="bold"><strong>Movable Tree Node</strong></span></a>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Copy assignment operator
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">with_count</span><span class="special">&</span> <span class="keyword">operator</span><span class="special">=(</span><span class="identifier">with_count</span> <span class="keyword">const</span><span class="special">&);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Assignable
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Move assignment operator
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">with_count</span><span class="special">&</span> <span class="keyword">operator</span><span class="special">=(</span><span class="identifier">with_count</span><span class="special">&&);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Movable
+                  </p>
+                </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.with_count.non_members"></a><a class="link" href="with_count.html#tree_node.reference.with_count.non_members" title="Non-members">Non-members</a>
+</h4></div></div></div>
+<p>
+          Same as those defined in <a class="link" href="with_count_base.html" title="with_count_base<Derived,BaseGenerator,T1,T2,Count>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">with_count_base</span></code></a>.
+        </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-2013 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="with_accumulation_base_gen.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="with_count_gen.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/with_count_base.html
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/with_count_base.html	2013-07-07 14:52:52 EDT (Sun, 07 Jul 2013)	(r84977)
@@ -0,0 +1,481 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>with_count_base<Derived,BaseGenerator,T1,T2,Count></title>
+<link rel="stylesheet" href="http://www.boost.org/doc/libs/release/doc/src/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.77.1">
+<link rel="home" href="../../index.html" title="Chapter 1. tree_node 0.5">
+<link rel="up" href="../reference.html" title="Reference">
+<link rel="prev" href="with_count_gen.html" title="with_count_gen<BaseGenerator>">
+<link rel="next" href="with_count_base_gen.html" title="with_count_base_gen<BaseGenerator>">
+</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="with_count_gen.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="with_count_base_gen.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="tree_node.reference.with_count_base"></a><a class="link" href="with_count_base.html" title="with_count_base<Derived,BaseGenerator,T1,T2,Count>"><code class="computeroutput"><span class="identifier">with_count_base</span><span class="special"><</span><span class="identifier">Derived</span><span class="special">,</span><span class="identifier">BaseGenerator</span><span class="special">,</span><span class="identifier">T1</span><span class="special">,</span><span class="identifier">T2</span><span class="special">,</span><span class="identifier">Count</span><span class="special">></span></code></a>
+</h3></div></div></div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.with_count_base.description"></a><a class="link" href="with_count_base.html#tree_node.reference.with_count_base.description" title="Description">Description</a>
+</h4></div></div></div>
+<p>
+          The <a class="link" href="with_count.html" title="with_count<BaseGenerator,T1,T2,Count>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">with_count</span></code></a>
+          class template inherits its functionality from this class template. They
+          differ only with regard to template parameters: the <a class="link" href="with_count.html" title="with_count<BaseGenerator,T1,T2,Count>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">with_count</span></code></a> class template is meant
+          to be used directly as a data structure, while <code class="computeroutput"><span class="identifier">with_count_base</span></code>
+          is more suitable as a base class template from which other <a class="link" href="../concepts/tree_node.html" title="Tree Node"><span class="bold"><strong>Tree Node</strong></span></a> adaptor class templates can derive
+          via the <a class="link" href="with_count_base_gen.html" title="with_count_base_gen<BaseGenerator>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">with_count_base_gen</span></code></a> <a class="link" href="../concepts/base_type_generator.html" title="Base Type Generator"><span class="bold"><strong>Base Type Generator</strong></span></a>.
+        </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.with_count_base.definition"></a><a class="link" href="with_count_base.html#tree_node.reference.with_count_base.definition" title="Where defined">Where
+        defined</a>
+</h4></div></div></div>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span>boost/tree_node/with_count.hpp<span class="special">></span>
+</pre>
+<p>
+          Forward-declared:
+        </p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span>boost/tree_node/with_count_fwd.hpp<span class="special">></span>
+</pre>
+<p>
+          To register under Boost.Typeof:
+        </p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span>boost/typeof/boost/tree_node/with_count.hpp<span class="special">></span>
+</pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.with_count_base.tpl_param"></a><a class="link" href="with_count_base.html#tree_node.reference.with_count_base.tpl_param" title="Template Parameters">Template
+        Parameters</a>
+</h4></div></div></div>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+                  <p>
+                    Parameter
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Description
+                  </p>
+                </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">Derived</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    The most descendant type that will inherit from this one.
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">BaseGenerator</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    The <a class="link" href="../concepts/base_type_generator.html" title="Base Type Generator"><span class="bold"><strong>Base Type Generator</strong></span></a> from whose
+                    return type <code class="computeroutput"><span class="identifier">with_count_base</span></code>
+                    will inherit.
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">T1</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    The key type if <code class="computeroutput"><span class="identifier">T2</span></code>
+                    is not <code class="computeroutput"><span class="keyword">void</span></code>; the
+                    user data type otherwise.
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">T2</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    The user data type if not <code class="computeroutput"><span class="keyword">void</span></code>;
+                    ignored otherwise.
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">Count</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    The count type.
+                  </p>
+                </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.with_count_base.model_of"></a><a class="link" href="with_count_base.html#tree_node.reference.with_count_base.model_of" title="Model of">Model
+        of</a>
+</h4></div></div></div>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem"><p>
+              <a class="link" href="../concepts/associative_tree_node.html" title="Associative Tree Node"><span class="bold"><strong>Associative Tree Node</strong></span></a> if <code class="computeroutput"><span class="identifier">T2</span></code> is not <code class="computeroutput"><span class="keyword">void</span></code>;
+              <a class="link" href="../concepts/non_assoc_tree_node.html" title="Non-Associative Tree Node"><span class="bold"><strong>Non-Associative
+              Tree Node</strong></span></a> otherwise
+            </p></li>
+<li class="listitem"><p>
+              <a class="link" href="../concepts/base_tree_node.html" title="Base Tree Node"><span class="bold"><strong>Base
+              Tree Node</strong></span></a>
+            </p></li>
+<li class="listitem"><p>
+              any other concept that the return type of <code class="computeroutput"><span class="identifier">BaseGenerator</span></code>
+              models
+            </p></li>
+</ul></div>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.with_count_base.public_bases"></a><a class="link" href="with_count_base.html#tree_node.reference.with_count_base.public_bases" title="Public Base Classes">Public
+        Base Classes</a>
+</h4></div></div></div>
+<pre class="programlisting"><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">eval_if</span><span class="special"><</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">is_void</span><span class="special"><</span><span class="identifier">T2</span><span class="special">></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">apply_wrap2</span><span class="special"><</span><span class="identifier">BaseGenerator</span><span class="special">,</span><span class="identifier">Derived</span><span class="special">,</span><span class="identifier">T1</span><span class="special">></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">apply_wrap3</span><span class="special"><</span><span class="identifier">BaseGenerator</span><span class="special">,</span><span class="identifier">Derived</span><span class="special">,</span><span class="identifier">T1</span><span class="special">,</span><span class="identifier">T2</span><span class="special">></span>
+<span class="special">>::</span><span class="identifier">type</span>
+</pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.with_count_base.members"></a><a class="link" href="with_count_base.html#tree_node.reference.with_count_base.members" title="Members">Members</a>
+</h4></div></div></div>
+<p>
+          In addition to those inherited from the return type of <code class="computeroutput"><span class="identifier">BaseGenerator</span></code>,
+          the following members are defined:
+        </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+                  <p>
+                    Name
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Definition
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Scope
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Description
+                  </p>
+                </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+                  <p>
+                    Emplacement constructor
+                  </p>
+                </td>
+<td>
+<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="special">...</span><span class="identifier">Args</span><span class="special">></span>
+<span class="keyword">explicit</span> <span class="identifier">with_count_base</span><span class="special">(</span><span class="identifier">Args</span><span class="special">&&</span> <span class="special">...</span><span class="identifier">args</span><span class="special">);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">protected</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>
+                    Emplacement constructor with allocator
+                  </p>
+                </td>
+<td>
+<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="special">...</span><span class="identifier">Args</span><span class="special">></span>
+<span class="keyword">explicit</span> <span class="identifier">with_count_base</span><span class="special">(</span>
+    <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">container</span><span class="special">::</span><span class="identifier">allocator_arg_t</span>
+  <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">traits</span><span class="special">::</span><span class="identifier">allocator_reference</span> <span class="identifier">allocator</span>
+  <span class="special">,</span> <span class="identifier">Args</span><span class="special">&&</span> <span class="special">...</span><span class="identifier">args</span>
+<span class="special">);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">protected</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>
+                    Derived copy constructor
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">with_count_base</span><span class="special">(</span><span class="identifier">Derived</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">copy</span><span class="special">);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">protected</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Defined by the <a class="link" href="../concepts/base_tree_node.html" title="Base Tree Node"><span class="bold"><strong>Base Tree Node</strong></span></a> concept.
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Derived copy constructor with allocator
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">with_count_base</span><span class="special">(</span>
+    <span class="identifier">Derived</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">copy</span>
+  <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">traits</span><span class="special">::</span><span class="identifier">allocator_reference</span> <span class="identifier">allocator</span>
+<span class="special">);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">protected</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Defined by the <a class="link" href="../concepts/base_tree_node.html" title="Base Tree Node"><span class="bold"><strong>Base Tree Node</strong></span></a> concept.
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Derived move constructor
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">with_count_base</span><span class="special">(</span><span class="identifier">Derived</span><span class="special">&&);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">protected</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Defined by the <a class="link" href="../concepts/base_tree_node.html" title="Base Tree Node"><span class="bold"><strong>Base Tree Node</strong></span></a> concept.
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Derived move constructor with allocator
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">with_count_base</span><span class="special">(</span>
+    <span class="identifier">Derived</span><span class="special">&&</span> <span class="identifier">source</span>
+  <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">traits</span><span class="special">::</span><span class="identifier">allocator_reference</span> <span class="identifier">allocator</span>
+<span class="special">);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">protected</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Defined by the <a class="link" href="../concepts/base_tree_node.html" title="Base Tree Node"><span class="bold"><strong>Base Tree Node</strong></span></a> concept.
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Count member read-only access
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">typename</span> <span class="identifier">traits</span><span class="special">::</span><span class="identifier">count</span> <span class="keyword">const</span><span class="special">&</span> <span class="keyword">operator</span><span class="special">[](</span><span class="identifier">count_key</span> <span class="keyword">const</span><span class="special">&)</span> <span class="keyword">const</span><span class="special">;</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">public</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Returns the count of this tree node.
+                  </p>
+                </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.with_count_base.non_members"></a><a class="link" href="with_count_base.html#tree_node.reference.with_count_base.non_members" title="Non-members">Non-members</a>
+</h4></div></div></div>
+<p>
+          In addition to those inherited from the return type of <code class="computeroutput"><span class="identifier">BaseGenerator</span></code>,
+          the following non-members are defined.
+        </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+                  <p>
+                    Name
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Definition
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Where defined
+                  </p>
+                </th>
+</tr></thead>
+<tbody><tr>
+<td>
+                  <p>
+                    Count read-only access
+                  </p>
+                </td>
+<td>
+<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">Derived</span>
+      <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">BaseGenerator</span>
+      <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">T1</span>
+      <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">T2</span>
+      <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Count</span>
+    <span class="special">></span>
+    <span class="keyword">typename</span> <span class="identifier">with_count_base</span><span class="special"><</span>
+        <span class="identifier">Derived</span>
+      <span class="special">,</span> <span class="identifier">BaseGenerator</span>
+      <span class="special">,</span> <span class="identifier">T1</span>
+      <span class="special">,</span> <span class="identifier">T2</span>
+      <span class="special">,</span> <span class="identifier">Count</span>
+    <span class="special">>::</span><span class="identifier">traits</span><span class="special">::</span><span class="identifier">count</span> <span class="keyword">const</span><span class="special">&</span>
+        <span class="identifier">get</span><span class="special">(</span>
+            <span class="identifier">with_count_base</span><span class="special"><</span><span class="identifier">Derived</span><span class="special">,</span><span class="identifier">BaseGenerator</span><span class="special">,</span><span class="identifier">T1</span><span class="special">,</span><span class="identifier">T2</span><span class="special">,</span><span class="identifier">Count</span><span class="special">></span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">node</span>
+          <span class="special">,</span> <span class="identifier">count_key</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">key</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">Derived</span>
+      <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">BaseGenerator</span>
+      <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">T1</span>
+      <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">T2</span>
+      <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Count</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">std</span><span class="special">::</span><span class="identifier">tr1</span><span class="special">::</span><span class="identifier">is_same</span><span class="special"><</span><span class="identifier">Key</span><span class="special">,</span><span class="identifier">count_key</span><span class="special">></span>
+      <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">with_count_base</span><span class="special"><</span>
+            <span class="identifier">Derived</span>
+          <span class="special">,</span> <span class="identifier">BaseGenerator</span>
+          <span class="special">,</span> <span class="identifier">T1</span>
+          <span class="special">,</span> <span class="identifier">T2</span>
+          <span class="special">,</span> <span class="identifier">Count</span>
+        <span class="special">>::</span><span class="identifier">traits</span><span class="special">::</span><span class="identifier">count</span> <span class="keyword">const</span><span class="special">&</span>
+    <span class="special">>::</span><span class="identifier">type</span>
+        <span class="identifier">get</span><span class="special">(</span><span class="identifier">with_count_base</span><span class="special"><</span><span class="identifier">Derived</span><span class="special">,</span><span class="identifier">BaseGenerator</span><span class="special">,</span><span class="identifier">T1</span><span class="special">,</span><span class="identifier">T2</span><span class="special">,</span><span class="identifier">Count</span><span class="special">></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>
+                </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>
+<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-2013 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="with_count_gen.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="with_count_base_gen.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/with_count_base_gen.html
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/with_count_base_gen.html	2013-07-07 14:52:52 EDT (Sun, 07 Jul 2013)	(r84977)
@@ -0,0 +1,207 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>with_count_base_gen<BaseGenerator></title>
+<link rel="stylesheet" href="http://www.boost.org/doc/libs/release/doc/src/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.77.1">
+<link rel="home" href="../../index.html" title="Chapter 1. tree_node 0.5">
+<link rel="up" href="../reference.html" title="Reference">
+<link rel="prev" href="with_count_base.html" title="with_count_base<Derived,BaseGenerator,T1,T2,Count>">
+<link rel="next" href="with_height.html" title="with_height<BaseGenerator,T1,T2,Height>">
+</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="with_count_base.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="with_height.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="tree_node.reference.with_count_base_gen"></a><a class="link" href="with_count_base_gen.html" title="with_count_base_gen<BaseGenerator>"><code class="computeroutput"><span class="identifier">with_count_base_gen</span><span class="special"><</span><span class="identifier">BaseGenerator</span><span class="special">></span></code></a>
+</h3></div></div></div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.with_count_base_gen.synopsis"></a><a class="link" href="with_count_base_gen.html#tree_node.reference.with_count_base_gen.synopsis" title="Synopsis">Synopsis</a>
+</h4></div></div></div>
+<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">BaseGenerator</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Count</span> <span class="special">=</span> <span class="keyword">void</span><span class="special">></span>
+    <span class="keyword">struct</span> <span class="identifier">with_count_base_gen</span>
+    <span class="special">{</span>
+        <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">Derived</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">T2</span> <span class="special">=</span> <span class="keyword">void</span><span class="special">></span>
+        <span class="keyword">struct</span> <span class="identifier">apply</span>
+        <span class="special">{</span>
+            <span class="keyword">typedef</span> <span class="identifier">with_count_base</span><span class="special"><</span><span class="identifier">Derived</span><span class="special">,</span><span class="identifier">BaseGenerator</span><span class="special">,</span><span class="identifier">T1</span><span class="special">,</span><span class="identifier">T2</span><span class="special">,</span><span class="identifier">Count</span><span class="special">></span> <span class="identifier">type</span><span class="special">;</span>
+        <span class="special">};</span>
+    <span class="special">};</span>
+<span class="special">}}</span>  <span class="comment">// namespace boost::tree_node</span>
+</pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.with_count_base_gen.description"></a><a class="link" href="with_count_base_gen.html#tree_node.reference.with_count_base_gen.description" title="Description">Description</a>
+</h4></div></div></div>
+<p>
+          Selector that can be passed on to generic functions and/or data structures
+          that use <a class="link" href="../concepts/base_tree_node.html" title="Base Tree Node"><span class="bold"><strong>Base
+          Tree Node</strong></span></a> models with constant-time access to node counts.
+          The <code class="computeroutput"><span class="identifier">BaseGenerator</span></code> template
+          argument allows the same models to incorporate other data that the same
+          or other functions and/or data structures might need.
+        </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.with_count_base_gen.definition"></a><a class="link" href="with_count_base_gen.html#tree_node.reference.with_count_base_gen.definition" title="Where defined">Where
+        defined</a>
+</h4></div></div></div>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span>boost/tree_node/with_count.hpp<span class="special">></span>
+</pre>
+<p>
+          To register under Boost.Typeof:
+        </p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span>boost/typeof/boost/tree_node/with_count.hpp<span class="special">></span>
+</pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.with_count_base_gen.model_of"></a><a class="link" href="with_count_base_gen.html#tree_node.reference.with_count_base_gen.model_of" title="Model of">Model
+        of</a>
+</h4></div></div></div>
+<p>
+          <a class="link" href="../concepts/base_type_generator.html" title="Base Type Generator"><span class="bold"><strong>Base
+          Type Generator</strong></span></a>
+        </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.with_count_base_gen.tpl_param"></a><a class="link" href="with_count_base_gen.html#tree_node.reference.with_count_base_gen.tpl_param" title="Template Parameters">Template
+        Parameters</a>
+</h4></div></div></div>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+                  <p>
+                    Parameter
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Description
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Default
+                  </p>
+                </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">BaseGenerator</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    The <a class="link" href="../concepts/base_type_generator.html" title="Base Type Generator"><span class="bold"><strong>Base Type Generator</strong></span></a> from whose
+                    return type <a class="link" href="with_count_base.html" title="with_count_base<Derived,BaseGenerator,T1,T2,Count>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">with_count_base</span></code></a> will
+                    inherit.
+                  </p>
+                </td>
+<td>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">Count</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    The count type.
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</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.with_count_base_gen.expressions"></a><a class="link" href="with_count_base_gen.html#tree_node.reference.with_count_base_gen.expressions" title="Expression Semantics">Expression
+        Semantics</a>
+</h4></div></div></div>
+<p>
+          Let <code class="computeroutput"><span class="identifier">Derived</span></code> be the type
+          that will inherit from <a class="link" href="with_count_base.html" title="with_count_base<Derived,BaseGenerator,T1,T2,Count>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">with_count_base</span></code></a>.
+        </p>
+<p>
+          Let <code class="computeroutput"><span class="identifier">Key</span></code> be the key type.
+        </p>
+<p>
+          Let <code class="computeroutput"><span class="identifier">Data</span></code> be the user data
+          type.
+        </p>
+<p>
+          Let <code class="computeroutput"><span class="identifier">BaseGenerator</span></code> be a
+          valid first template argument for <code class="computeroutput"><span class="identifier">with_count_base_gen</span></code>.
+        </p>
+<p>
+          Let <code class="computeroutput"><span class="identifier">Count</span></code> be the count
+          type.
+        </p>
+<pre class="programlisting"><span class="keyword">typedef</span> boost::mpl::apply_wrap3<span class="special"><</span>
+    <span class="identifier">with_count_base_gen</span><span class="special"><</span><span class="identifier">BaseGenerator</span><span class="special">,</span><span class="identifier">Count</span><span class="special">></span>
+  <span class="special">,</span> <span class="identifier">Derived</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">type</span> <span class="identifier">r</span><span class="special">;</span>
+</pre>
+<p>
+          <span class="bold"><strong>Return type:</strong></span> <code class="literal"><a class="link" href="with_count_base.html" title="with_count_base<Derived,BaseGenerator,T1,T2,Count>">tree_node::with_count_base</a><Derived,BaseGenerator,Key,Data,Count></code>
+        </p>
+<pre class="programlisting"><span class="keyword">typedef</span> boost::mpl::apply_wrap2<span class="special"><</span>
+    <span class="identifier">with_count_base_gen</span><span class="special"><</span><span class="identifier">BaseGenerator</span><span class="special">,</span><span class="identifier">Count</span><span class="special">></span>
+  <span class="special">,</span> <span class="identifier">Derived</span>
+  <span class="special">,</span> <span class="identifier">Data</span>
+<span class="special">>::</span><span class="identifier">type</span> <span class="identifier">r</span><span class="special">;</span>
+</pre>
+<p>
+          <span class="bold"><strong>Return type:</strong></span> <code class="literal"><a class="link" href="with_count_base.html" title="with_count_base<Derived,BaseGenerator,T1,T2,Count>">tree_node::with_count_base</a><Derived,BaseGenerator,Data,void,Count></code>
+        </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.with_count_base_gen.complexity"></a><a class="link" href="with_count_base_gen.html#tree_node.reference.with_count_base_gen.complexity" title="Complexity">Complexity</a>
+</h4></div></div></div>
+<p>
+          Compile time.
+        </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-2013 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="with_count_base.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="with_height.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/with_count_gen.html
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/with_count_gen.html	2013-07-07 14:52:52 EDT (Sun, 07 Jul 2013)	(r84977)
@@ -0,0 +1,201 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>with_count_gen<BaseGenerator></title>
+<link rel="stylesheet" href="http://www.boost.org/doc/libs/release/doc/src/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.77.1">
+<link rel="home" href="../../index.html" title="Chapter 1. tree_node 0.5">
+<link rel="up" href="../reference.html" title="Reference">
+<link rel="prev" href="with_count.html" title="with_count<BaseGenerator,T1,T2,Count>">
+<link rel="next" href="with_count_base.html" title="with_count_base<Derived,BaseGenerator,T1,T2,Count>">
+</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="with_count.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="with_count_base.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="tree_node.reference.with_count_gen"></a><a class="link" href="with_count_gen.html" title="with_count_gen<BaseGenerator>"><code class="computeroutput"><span class="identifier">with_count_gen</span><span class="special"><</span><span class="identifier">BaseGenerator</span><span class="special">></span></code></a>
+</h3></div></div></div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.with_count_gen.synopsis"></a><a class="link" href="with_count_gen.html#tree_node.reference.with_count_gen.synopsis" title="Synopsis">Synopsis</a>
+</h4></div></div></div>
+<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">BaseGenerator</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Count</span> <span class="special">=</span> <span class="keyword">void</span><span class="special">></span>
+    <span class="keyword">struct</span> <span class="identifier">with_count_gen</span>
+    <span class="special">{</span>
+        <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">T2</span> <span class="special">=</span> <span class="keyword">void</span><span class="special">></span>
+        <span class="keyword">struct</span> <span class="identifier">apply</span>
+        <span class="special">{</span>
+            <span class="keyword">typedef</span> <span class="identifier">with_count</span><span class="special"><</span><span class="identifier">BaseGenerator</span><span class="special">,</span><span class="identifier">T1</span><span class="special">,</span><span class="identifier">T2</span><span class="special">,</span><span class="identifier">Count</span><span class="special">></span> <span class="identifier">type</span><span class="special">;</span>
+        <span class="special">};</span>
+    <span class="special">};</span>
+<span class="special">}}</span>  <span class="comment">// namespace boost::tree_node</span>
+</pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.with_count_gen.description"></a><a class="link" href="with_count_gen.html#tree_node.reference.with_count_gen.description" title="Description">Description</a>
+</h4></div></div></div>
+<p>
+          Selector that can be passed on to generic functions and/or data structures
+          that use <a class="link" href="../concepts/tree_node.html" title="Tree Node"><span class="bold"><strong>Tree
+          Node</strong></span></a> models with constant-time access to node counts.
+          The <code class="computeroutput"><span class="identifier">BaseGenerator</span></code> template
+          argument allows the same models to incorporate other data that the same
+          or other functions and/or data structures might need.
+        </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.with_count_gen.definition"></a><a class="link" href="with_count_gen.html#tree_node.reference.with_count_gen.definition" title="Where defined">Where
+        defined</a>
+</h4></div></div></div>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span>boost/tree_node/with_count.hpp<span class="special">></span>
+</pre>
+<p>
+          To register under Boost.Typeof:
+        </p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span>boost/typeof/boost/tree_node/with_count.hpp<span class="special">></span>
+</pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.with_count_gen.model_of"></a><a class="link" href="with_count_gen.html#tree_node.reference.with_count_gen.model_of" title="Model of">Model
+        of</a>
+</h4></div></div></div>
+<p>
+          <a class="link" href="../concepts/node_type_generator.html" title="Node Type Generator"><span class="bold"><strong>Node
+          Type Generator</strong></span></a>
+        </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.with_count_gen.tpl_param"></a><a class="link" href="with_count_gen.html#tree_node.reference.with_count_gen.tpl_param" title="Template Parameters">Template
+        Parameters</a>
+</h4></div></div></div>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+                  <p>
+                    Parameter
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Description
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Default
+                  </p>
+                </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">BaseGenerator</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    The <a class="link" href="../concepts/base_type_generator.html" title="Base Type Generator"><span class="bold"><strong>Base Type Generator</strong></span></a> from whose
+                    return type <a class="link" href="with_count.html" title="with_count<BaseGenerator,T1,T2,Count>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">with_count</span></code></a> will ultimately
+                    inherit.
+                  </p>
+                </td>
+<td>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">Count</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    The count type.
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</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.with_count_gen.expressions"></a><a class="link" href="with_count_gen.html#tree_node.reference.with_count_gen.expressions" title="Expression Semantics">Expression
+        Semantics</a>
+</h4></div></div></div>
+<p>
+          Let <code class="computeroutput"><span class="identifier">Key</span></code> be the key type.
+        </p>
+<p>
+          Let <code class="computeroutput"><span class="identifier">Data</span></code> be the user data
+          type.
+        </p>
+<p>
+          Let <code class="computeroutput"><span class="identifier">BaseGenerator</span></code> be a
+          valid first template argument for <code class="computeroutput"><span class="identifier">with_count_gen</span></code>.
+        </p>
+<p>
+          Let <code class="computeroutput"><span class="identifier">Count</span></code> be the count
+          type.
+        </p>
+<pre class="programlisting"><span class="keyword">typedef</span> boost::mpl::apply_wrap2<span class="special"><</span>
+    <span class="identifier">with_count_gen</span><span class="special"><</span><span class="identifier">BaseGenerator</span><span class="special">,</span><span class="identifier">Count</span><span class="special">></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">type</span> <span class="identifier">r</span><span class="special">;</span>
+</pre>
+<p>
+          <span class="bold"><strong>Return type:</strong></span> <code class="literal"><a class="link" href="with_count.html" title="with_count<BaseGenerator,T1,T2,Count>">tree_node::with_count</a><BaseGenerator,Key,Data,Count></code>
+        </p>
+<pre class="programlisting"><span class="keyword">typedef</span> boost::mpl::apply_wrap1<span class="special"><</span>
+    <span class="identifier">with_count_gen</span><span class="special"><</span><span class="identifier">BaseGenerator</span><span class="special">,</span><span class="identifier">Count</span><span class="special">></span>
+  <span class="special">,</span> <span class="identifier">Data</span>
+<span class="special">>::</span><span class="identifier">type</span> <span class="identifier">r</span><span class="special">;</span>
+</pre>
+<p>
+          <span class="bold"><strong>Return type:</strong></span> <code class="literal"><a class="link" href="with_count.html" title="with_count<BaseGenerator,T1,T2,Count>">tree_node::with_count</a><BaseGenerator,Data,void,Count></code>
+        </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.with_count_gen.complexity"></a><a class="link" href="with_count_gen.html#tree_node.reference.with_count_gen.complexity" title="Complexity">Complexity</a>
+</h4></div></div></div>
+<p>
+          Compile time.
+        </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-2013 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="with_count.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="with_count_base.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/with_height.html
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/with_height.html	2013-07-07 14:52:52 EDT (Sun, 07 Jul 2013)	(r84977)
@@ -0,0 +1,382 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>with_height<BaseGenerator,T1,T2,Height></title>
+<link rel="stylesheet" href="http://www.boost.org/doc/libs/release/doc/src/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.77.1">
+<link rel="home" href="../../index.html" title="Chapter 1. tree_node 0.5">
+<link rel="up" href="../reference.html" title="Reference">
+<link rel="prev" href="with_count_base_gen.html" title="with_count_base_gen<BaseGenerator>">
+<link rel="next" href="with_height_gen.html" title="with_height_gen<BaseGenerator>">
+</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="with_count_base_gen.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="with_height_gen.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="tree_node.reference.with_height"></a><a class="link" href="with_height.html" title="with_height<BaseGenerator,T1,T2,Height>"><code class="computeroutput"><span class="identifier">with_height</span><span class="special"><</span><span class="identifier">BaseGenerator</span><span class="special">,</span><span class="identifier">T1</span><span class="special">,</span><span class="identifier">T2</span><span class="special">,</span><span class="identifier">Height</span><span class="special">></span></code></a>
+</h3></div></div></div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.with_height.description"></a><a class="link" href="with_height.html#tree_node.reference.with_height.description" title="Description">Description</a>
+</h4></div></div></div>
+<p>
+          The <span class="bold"><strong>height</strong></span> of a tree node can be defined
+          as the magnitude of the difference between its ply and that of its deepest
+          descendant. In addition to the operations it inherits from the return type
+          of <code class="computeroutput"><span class="identifier">BaseGenerator</span></code>, this
+          <a class="link" href="../concepts/tree_node.html" title="Tree Node"><span class="bold"><strong>Tree
+          Node</strong></span></a> adaptor provides constant-time access to the height
+          of the node by updating this information after structural modifications
+          have been performed.
+        </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.with_height.definition"></a><a class="link" href="with_height.html#tree_node.reference.with_height.definition" title="Where defined">Where defined</a>
+</h4></div></div></div>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span>boost/tree_node/with_height.hpp<span class="special">></span>
+</pre>
+<p>
+          Forward-declared:
+        </p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span>boost/tree_node/with_height_fwd.hpp<span class="special">></span>
+</pre>
+<p>
+          To register under Boost.Typeof:
+        </p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span>boost/typeof/boost/tree_node/with_height.hpp<span class="special">></span>
+</pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.with_height.tpl_param"></a><a class="link" href="with_height.html#tree_node.reference.with_height.tpl_param" title="Template Parameters">Template
+        Parameters</a>
+</h4></div></div></div>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+                  <p>
+                    Parameter
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Description
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Default
+                  </p>
+                </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">BaseGenerator</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    The <a class="link" href="../concepts/base_type_generator.html" title="Base Type Generator"><span class="bold"><strong>Base Type Generator</strong></span></a> from whose
+                    return type <code class="computeroutput"><span class="identifier">with_height</span></code>
+                    will ultimately inherit.
+                  </p>
+                </td>
+<td>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">T1</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    The key type if <code class="computeroutput"><span class="identifier">T2</span></code>
+                    is not <code class="computeroutput"><span class="keyword">void</span></code>; the
+                    user data type otherwise.
+                  </p>
+                </td>
+<td>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">T2</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    The user data type if not <code class="computeroutput"><span class="keyword">void</span></code>;
+                    ignored otherwise.
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">void</span></code>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">Height</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    The height type.
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</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.with_height.model_of"></a><a class="link" href="with_height.html#tree_node.reference.with_height.model_of" title="Model of">Model of</a>
+</h4></div></div></div>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem"><p>
+              <a class="link" href="../concepts/associative_tree_node.html" title="Associative Tree Node"><span class="bold"><strong>Associative Tree Node</strong></span></a> if <code class="computeroutput"><span class="identifier">T2</span></code> is not <code class="computeroutput"><span class="keyword">void</span></code>;
+              <a class="link" href="../concepts/non_assoc_tree_node.html" title="Non-Associative Tree Node"><span class="bold"><strong>Non-Associative
+              Tree Node</strong></span></a> otherwise
+            </p></li>
+<li class="listitem"><p>
+              any other concept that the return type of <code class="computeroutput"><span class="identifier">BaseGenerator</span></code>
+              models
+            </p></li>
+</ul></div>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.with_height.public_bases"></a><a class="link" href="with_height.html#tree_node.reference.with_height.public_bases" title="Public Base Classes">Public
+        Base Classes</a>
+</h4></div></div></div>
+<pre class="programlisting"><span class="identifier">with_height_base</span><span class="special"><</span>
+    <span class="identifier">with_height</span><span class="special"><</span><span class="identifier">BaseGenerator</span><span class="special">,</span><span class="identifier">T1</span><span class="special">,</span><span class="identifier">T2</span><span class="special">,</span><span class="identifier">Height</span><span class="special">></span>
+  <span class="special">,</span> <span class="identifier">BaseGenerator</span>
+  <span class="special">,</span> <span class="identifier">T1</span>
+  <span class="special">,</span> <span class="identifier">T2</span>
+  <span class="special">,</span> <span class="identifier">Height</span>
+<span class="special">></span>
+</pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.with_height.members"></a><a class="link" href="with_height.html#tree_node.reference.with_height.members" title="Public Members">Public Members</a>
+</h4></div></div></div>
+<p>
+          In addition to those inherited from the return type of <code class="computeroutput"><span class="identifier">BaseGenerator</span></code>,
+          the following members are defined:
+        </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+                  <p>
+                    Name
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Definition
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Where defined
+                  </p>
+                </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+                  <p>
+                    Emplacement constructor
+                  </p>
+                </td>
+<td>
+<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="special">...</span><span class="identifier">Args</span><span class="special">></span>
+<span class="keyword">explicit</span> <span class="identifier">with_height</span><span class="special">(</span><span class="identifier">Args</span><span class="special">&&</span> <span class="special">...</span><span class="identifier">args</span><span class="special">);</span>
+</pre>
+                </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>
+                    Emplacement constructor with allocator
+                  </p>
+                </td>
+<td>
+<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="special">...</span><span class="identifier">Args</span><span class="special">></span>
+<span class="keyword">explicit</span> <span class="identifier">with_height</span><span class="special">(</span>
+    <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">container</span><span class="special">::</span><span class="identifier">allocator_arg_t</span>
+  <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">traits</span><span class="special">::</span><span class="identifier">allocator_reference</span> <span class="identifier">allocator</span>
+  <span class="special">,</span> <span class="identifier">Args</span><span class="special">&&</span> <span class="special">...</span><span class="identifier">args</span>
+<span class="special">);</span>
+</pre>
+                </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>
+                    Copy constructor
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">with_height</span><span class="special">(</span><span class="identifier">with_height</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">copy</span><span class="special">);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <a class="link" href="../concepts/copyable_tree_node.html" title="Copyable Tree Node"><span class="bold"><strong>Copyable Tree Node</strong></span></a>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Copy constructor with allocator
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">with_height</span><span class="special">(</span>
+    <span class="identifier">with_height</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">copy</span>
+  <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">traits</span><span class="special">::</span><span class="identifier">allocator_reference</span> <span class="identifier">allocator</span>
+<span class="special">);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <a class="link" href="../concepts/copyable_tree_node.html" title="Copyable Tree Node"><span class="bold"><strong>Copyable Tree Node</strong></span></a>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Move constructor
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">with_height</span><span class="special">(</span><span class="identifier">with_height</span><span class="special">&&</span> <span class="identifier">source</span><span class="special">);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <a class="link" href="../concepts/movable_tree_node.html" title="Movable Tree Node"><span class="bold"><strong>Movable Tree Node</strong></span></a>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Move constructor with allocator
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">with_height</span><span class="special">(</span>
+    <span class="identifier">with_height</span><span class="special">&&</span> <span class="identifier">source</span>
+  <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">traits</span><span class="special">::</span><span class="identifier">allocator_reference</span> <span class="identifier">allocator</span>
+<span class="special">);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <a class="link" href="../concepts/movable_tree_node.html" title="Movable Tree Node"><span class="bold"><strong>Movable Tree Node</strong></span></a>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Copy assignment operator
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">with_height</span><span class="special">&</span> <span class="keyword">operator</span><span class="special">=(</span><span class="identifier">with_height</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">copy</span><span class="special">);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Assignable
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Move assignment operator
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">with_height</span><span class="special">&</span> <span class="keyword">operator</span><span class="special">=(</span><span class="identifier">with_height</span><span class="special">&&</span> <span class="identifier">source</span><span class="special">);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Movable
+                  </p>
+                </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.with_height.non_members"></a><a class="link" href="with_height.html#tree_node.reference.with_height.non_members" title="Non-members">Non-members</a>
+</h4></div></div></div>
+<p>
+          Same as those defined in <a class="link" href="with_height_base.html" title="with_height_base<Derived,BaseGenerator,T1,T2,Height>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">with_height_base</span></code></a>.
+        </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-2013 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="with_count_base_gen.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="with_height_gen.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/with_height_base.html
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/with_height_base.html	2013-07-07 14:52:52 EDT (Sun, 07 Jul 2013)	(r84977)
@@ -0,0 +1,481 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>with_height_base<Derived,BaseGenerator,T1,T2,Height></title>
+<link rel="stylesheet" href="http://www.boost.org/doc/libs/release/doc/src/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.77.1">
+<link rel="home" href="../../index.html" title="Chapter 1. tree_node 0.5">
+<link rel="up" href="../reference.html" title="Reference">
+<link rel="prev" href="with_height_gen.html" title="with_height_gen<BaseGenerator>">
+<link rel="next" href="with_height_base_gen.html" title="with_height_base_gen<BaseGenerator>">
+</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="with_height_gen.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="with_height_base_gen.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="tree_node.reference.with_height_base"></a><a class="link" href="with_height_base.html" title="with_height_base<Derived,BaseGenerator,T1,T2,Height>"><code class="computeroutput"><span class="identifier">with_height_base</span><span class="special"><</span><span class="identifier">Derived</span><span class="special">,</span><span class="identifier">BaseGenerator</span><span class="special">,</span><span class="identifier">T1</span><span class="special">,</span><span class="identifier">T2</span><span class="special">,</span><span class="identifier">Height</span><span class="special">></span></code> </a>
+</h3></div></div></div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.with_height_base.description"></a><a class="link" href="with_height_base.html#tree_node.reference.with_height_base.description" title="Description">Description</a>
+</h4></div></div></div>
+<p>
+          The <a class="link" href="with_height.html" title="with_height<BaseGenerator,T1,T2,Height>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">with_height</span></code></a>
+          class template inherits its functionality from this class template. They
+          differ only with regard to template parameters: the <a class="link" href="with_height.html" title="with_height<BaseGenerator,T1,T2,Height>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">with_height</span></code></a> class template is
+          meant to be used directly as a data structure, while <code class="computeroutput"><span class="identifier">with_height_base</span></code>
+          is more suitable as a base class template from which other <a class="link" href="../concepts/tree_node.html" title="Tree Node"><span class="bold"><strong>Tree Node</strong></span></a> adaptor class templates can derive
+          via the <a class="link" href="with_height_base_gen.html" title="with_height_base_gen<BaseGenerator>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">with_height_base_gen</span></code></a> <a class="link" href="../concepts/base_type_generator.html" title="Base Type Generator"><span class="bold"><strong>Base Type Generator</strong></span></a>.
+        </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.with_height_base.definition"></a><a class="link" href="with_height_base.html#tree_node.reference.with_height_base.definition" title="Where defined">Where
+        defined</a>
+</h4></div></div></div>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span>boost/tree_node/with_height.hpp<span class="special">></span>
+</pre>
+<p>
+          Forward-declared:
+        </p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span>boost/tree_node/with_height_fwd.hpp<span class="special">></span>
+</pre>
+<p>
+          To register under Boost.Typeof:
+        </p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span>boost/typeof/boost/tree_node/with_height.hpp<span class="special">></span>
+</pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.with_height_base.tpl_param"></a><a class="link" href="with_height_base.html#tree_node.reference.with_height_base.tpl_param" title="Template Parameters">Template
+        Parameters</a>
+</h4></div></div></div>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+                  <p>
+                    Parameter
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Description
+                  </p>
+                </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">Derived</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    The most descendant type that will inherit from this one.
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">BaseGenerator</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    The <a class="link" href="../concepts/base_type_generator.html" title="Base Type Generator"><span class="bold"><strong>Base Type Generator</strong></span></a> from whose
+                    return type <code class="computeroutput"><span class="identifier">with_height_base</span></code>
+                    will inherit.
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">T1</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    The key type if <code class="computeroutput"><span class="identifier">T2</span></code>
+                    is not <code class="computeroutput"><span class="keyword">void</span></code>; the
+                    user data type otherwise.
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">T2</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    The user data type if not <code class="computeroutput"><span class="keyword">void</span></code>;
+                    ignored otherwise.
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">Height</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    The height type.
+                  </p>
+                </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.with_height_base.model_of"></a><a class="link" href="with_height_base.html#tree_node.reference.with_height_base.model_of" title="Model of">Model
+        of</a>
+</h4></div></div></div>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem"><p>
+              <a class="link" href="../concepts/associative_tree_node.html" title="Associative Tree Node"><span class="bold"><strong>Associative Tree Node</strong></span></a> if <code class="computeroutput"><span class="identifier">T2</span></code> is not <code class="computeroutput"><span class="keyword">void</span></code>;
+              <a class="link" href="../concepts/non_assoc_tree_node.html" title="Non-Associative Tree Node"><span class="bold"><strong>Non-Associative
+              Tree Node</strong></span></a> otherwise
+            </p></li>
+<li class="listitem"><p>
+              <a class="link" href="../concepts/base_tree_node.html" title="Base Tree Node"><span class="bold"><strong>Base
+              Tree Node</strong></span></a>
+            </p></li>
+<li class="listitem"><p>
+              any other concept that the return type of <code class="computeroutput"><span class="identifier">BaseGenerator</span></code>
+              models
+            </p></li>
+</ul></div>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.with_height_base.public_bases"></a><a class="link" href="with_height_base.html#tree_node.reference.with_height_base.public_bases" title="Public Base Classes">Public
+        Base Classes</a>
+</h4></div></div></div>
+<pre class="programlisting"><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">eval_if</span><span class="special"><</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">is_void</span><span class="special"><</span><span class="identifier">T2</span><span class="special">></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">apply_wrap2</span><span class="special"><</span><span class="identifier">BaseGenerator</span><span class="special">,</span><span class="identifier">Derived</span><span class="special">,</span><span class="identifier">T1</span><span class="special">></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">apply_wrap3</span><span class="special"><</span><span class="identifier">BaseGenerator</span><span class="special">,</span><span class="identifier">Derived</span><span class="special">,</span><span class="identifier">T1</span><span class="special">,</span><span class="identifier">T2</span><span class="special">></span>
+<span class="special">>::</span><span class="identifier">type</span>
+</pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.with_height_base.members"></a><a class="link" href="with_height_base.html#tree_node.reference.with_height_base.members" title="Members">Members</a>
+</h4></div></div></div>
+<p>
+          In addition to those inherited from the return type of <code class="computeroutput"><span class="identifier">BaseGenerator</span></code>,
+          the following members are defined:
+        </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+                  <p>
+                    Name
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Definition
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Scope
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Description
+                  </p>
+                </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+                  <p>
+                    Emplacement constructor
+                  </p>
+                </td>
+<td>
+<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="special">...</span><span class="identifier">Args</span><span class="special">></span>
+<span class="keyword">explicit</span> <span class="identifier">with_height_base</span><span class="special">(</span><span class="identifier">Args</span><span class="special">&&</span> <span class="special">...</span><span class="identifier">args</span><span class="special">);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">protected</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>
+                    Emplacement constructor with allocator
+                  </p>
+                </td>
+<td>
+<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="special">...</span><span class="identifier">Args</span><span class="special">></span>
+<span class="keyword">explicit</span> <span class="identifier">with_height_base</span><span class="special">(</span>
+    <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">container</span><span class="special">::</span><span class="identifier">allocator_arg_t</span>
+  <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">traits</span><span class="special">::</span><span class="identifier">allocator_reference</span> <span class="identifier">allocator</span>
+  <span class="special">,</span> <span class="identifier">Args</span><span class="special">&&</span> <span class="special">...</span><span class="identifier">args</span>
+<span class="special">);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">protected</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>
+                    Derived copy constructor
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">with_height_base</span><span class="special">(</span><span class="identifier">Derived</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">copy</span><span class="special">);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">protected</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Defined by the <a class="link" href="../concepts/base_tree_node.html" title="Base Tree Node"><span class="bold"><strong>Base Tree Node</strong></span></a> concept.
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Derived copy constructor with allocator
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">with_height_base</span><span class="special">(</span>
+    <span class="identifier">Derived</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">copy</span>
+  <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">traits</span><span class="special">::</span><span class="identifier">allocator_reference</span> <span class="identifier">allocator</span>
+<span class="special">);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">protected</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Defined by the <a class="link" href="../concepts/base_tree_node.html" title="Base Tree Node"><span class="bold"><strong>Base Tree Node</strong></span></a> concept.
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Derived move constructor
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">with_height_base</span><span class="special">(</span><span class="identifier">Derived</span><span class="special">&&</span> <span class="identifier">source</span><span class="special">);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">protected</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Defined by the <a class="link" href="../concepts/base_tree_node.html" title="Base Tree Node"><span class="bold"><strong>Base Tree Node</strong></span></a> concept.
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Derived move constructor with allocator
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">with_height_base</span><span class="special">(</span>
+    <span class="identifier">Derived</span><span class="special">&&</span> <span class="identifier">source</span>
+  <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">traits</span><span class="special">::</span><span class="identifier">allocator_reference</span> <span class="identifier">allocator</span>
+<span class="special">);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">protected</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Defined by the <a class="link" href="../concepts/base_tree_node.html" title="Base Tree Node"><span class="bold"><strong>Base Tree Node</strong></span></a> concept.
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Height member read-only access
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">typename</span> <span class="identifier">traits</span><span class="special">::</span><span class="identifier">height</span> <span class="keyword">const</span><span class="special">&</span> <span class="keyword">operator</span><span class="special">[](</span><span class="identifier">height_key</span> <span class="keyword">const</span><span class="special">&)</span> <span class="keyword">const</span><span class="special">;</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">public</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Returns the height of this tree node.
+                  </p>
+                </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.with_height_base.non_members"></a><a class="link" href="with_height_base.html#tree_node.reference.with_height_base.non_members" title="Non-members">Non-members</a>
+</h4></div></div></div>
+<p>
+          In addition to those inherited from the return type of <code class="computeroutput"><span class="identifier">BaseGenerator</span></code>,
+          the following non-members are defined.
+        </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+                  <p>
+                    Name
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Definition
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Where defined
+                  </p>
+                </th>
+</tr></thead>
+<tbody><tr>
+<td>
+                  <p>
+                    Height read-only access
+                  </p>
+                </td>
+<td>
+<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">Derived</span>
+      <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">BaseGenerator</span>
+      <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">T1</span>
+      <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">T2</span>
+      <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Height</span>
+    <span class="special">></span>
+    <span class="keyword">typename</span> <span class="identifier">with_height_base</span><span class="special"><</span>
+        <span class="identifier">Derived</span>
+      <span class="special">,</span> <span class="identifier">BaseGenerator</span>
+      <span class="special">,</span> <span class="identifier">T1</span>
+      <span class="special">,</span> <span class="identifier">T2</span>
+      <span class="special">,</span> <span class="identifier">Height</span>
+    <span class="special">>::</span><span class="identifier">traits</span><span class="special">::</span><span class="identifier">height</span> <span class="keyword">const</span><span class="special">&</span>
+        <span class="identifier">get</span><span class="special">(</span>
+            <span class="identifier">with_height_base</span><span class="special"><</span><span class="identifier">Derived</span><span class="special">,</span><span class="identifier">BaseGenerator</span><span class="special">,</span><span class="identifier">T1</span><span class="special">,</span><span class="identifier">T2</span><span class="special">,</span><span class="identifier">Height</span><span class="special">></span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">node</span>
+          <span class="special">,</span> <span class="identifier">height_key</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">key</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">Derived</span>
+      <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">BaseGenerator</span>
+      <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">T1</span>
+      <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">T2</span>
+      <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Height</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">std</span><span class="special">::</span><span class="identifier">tr1</span><span class="special">::</span><span class="identifier">is_same</span><span class="special"><</span><span class="identifier">Key</span><span class="special">,</span><span class="identifier">height_key</span><span class="special">></span>
+      <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">with_height_base</span><span class="special"><</span>
+            <span class="identifier">Derived</span>
+          <span class="special">,</span> <span class="identifier">BaseGenerator</span>
+          <span class="special">,</span> <span class="identifier">T1</span>
+          <span class="special">,</span> <span class="identifier">T2</span>
+          <span class="special">,</span> <span class="identifier">Height</span>
+        <span class="special">>::</span><span class="identifier">traits</span><span class="special">::</span><span class="identifier">height</span> <span class="keyword">const</span><span class="special">&</span>
+    <span class="special">>::</span><span class="identifier">type</span>
+        <span class="identifier">get</span><span class="special">(</span><span class="identifier">with_height_base</span><span class="special"><</span><span class="identifier">Derived</span><span class="special">,</span><span class="identifier">BaseGenerator</span><span class="special">,</span><span class="identifier">T1</span><span class="special">,</span><span class="identifier">T2</span><span class="special">,</span><span class="identifier">Height</span><span class="special">></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>
+                </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>
+<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-2013 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="with_height_gen.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="with_height_base_gen.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/with_height_base_gen.html
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/with_height_base_gen.html	2013-07-07 14:52:52 EDT (Sun, 07 Jul 2013)	(r84977)
@@ -0,0 +1,207 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>with_height_base_gen<BaseGenerator></title>
+<link rel="stylesheet" href="http://www.boost.org/doc/libs/release/doc/src/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.77.1">
+<link rel="home" href="../../index.html" title="Chapter 1. tree_node 0.5">
+<link rel="up" href="../reference.html" title="Reference">
+<link rel="prev" href="with_height_base.html" title="with_height_base<Derived,BaseGenerator,T1,T2,Height>">
+<link rel="next" href="with_position.html" title="with_position<BaseGenerator,T1,T2>">
+</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="with_height_base.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="with_position.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="tree_node.reference.with_height_base_gen"></a><a class="link" href="with_height_base_gen.html" title="with_height_base_gen<BaseGenerator>"><code class="computeroutput"><span class="identifier">with_height_base_gen</span><span class="special"><</span><span class="identifier">BaseGenerator</span><span class="special">></span></code></a>
+</h3></div></div></div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.with_height_base_gen.synopsis"></a><a class="link" href="with_height_base_gen.html#tree_node.reference.with_height_base_gen.synopsis" title="Synopsis">Synopsis</a>
+</h4></div></div></div>
+<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">BaseGenerator</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Height</span> <span class="special">=</span> <span class="keyword">void</span><span class="special">></span>
+    <span class="keyword">struct</span> <span class="identifier">with_height_base_gen</span>
+    <span class="special">{</span>
+        <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">Derived</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">T2</span> <span class="special">=</span> <span class="keyword">void</span><span class="special">></span>
+        <span class="keyword">struct</span> <span class="identifier">apply</span>
+        <span class="special">{</span>
+            <span class="keyword">typedef</span> <span class="identifier">with_height_base</span><span class="special"><</span><span class="identifier">Derived</span><span class="special">,</span><span class="identifier">BaseGenerator</span><span class="special">,</span><span class="identifier">T1</span><span class="special">,</span><span class="identifier">T2</span><span class="special">,</span><span class="identifier">Height</span><span class="special">></span> <span class="identifier">type</span><span class="special">;</span>
+        <span class="special">};</span>
+    <span class="special">};</span>
+<span class="special">}}</span>  <span class="comment">// namespace boost::tree_node</span>
+</pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.with_height_base_gen.description"></a><a class="link" href="with_height_base_gen.html#tree_node.reference.with_height_base_gen.description" title="Description">Description</a>
+</h4></div></div></div>
+<p>
+          Selector that can be passed on to generic functions and/or data structures
+          that use <a class="link" href="../concepts/base_tree_node.html" title="Base Tree Node"><span class="bold"><strong>Base
+          Tree Node</strong></span></a> models with constant-time access to node heights.
+          The <code class="computeroutput"><span class="identifier">BaseGenerator</span></code> template
+          argument allows the same models to incorporate other data that the same
+          or other functions and/or data structures might need.
+        </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.with_height_base_gen.definition"></a><a class="link" href="with_height_base_gen.html#tree_node.reference.with_height_base_gen.definition" title="Where defined">Where
+        defined</a>
+</h4></div></div></div>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span>boost/tree_node/with_height.hpp<span class="special">></span>
+</pre>
+<p>
+          To register under Boost.Typeof:
+        </p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span>boost/typeof/boost/tree_node/with_height.hpp<span class="special">></span>
+</pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.with_height_base_gen.model_of"></a><a class="link" href="with_height_base_gen.html#tree_node.reference.with_height_base_gen.model_of" title="Model of">Model
+        of</a>
+</h4></div></div></div>
+<p>
+          <a class="link" href="../concepts/base_type_generator.html" title="Base Type Generator"><span class="bold"><strong>Base
+          Type Generator</strong></span></a>
+        </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.with_height_base_gen.tpl_param"></a><a class="link" href="with_height_base_gen.html#tree_node.reference.with_height_base_gen.tpl_param" title="Template Parameters">Template
+        Parameters</a>
+</h4></div></div></div>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+                  <p>
+                    Parameter
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Description
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Default
+                  </p>
+                </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">BaseGenerator</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    The <a class="link" href="../concepts/base_type_generator.html" title="Base Type Generator"><span class="bold"><strong>Base Type Generator</strong></span></a> from whose
+                    return type <a class="link" href="with_height_base.html" title="with_height_base<Derived,BaseGenerator,T1,T2,Height>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">with_height_base</span></code></a> will
+                    inherit.
+                  </p>
+                </td>
+<td>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">Height</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    The height type.
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</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.with_height_base_gen.expressions"></a><a class="link" href="with_height_base_gen.html#tree_node.reference.with_height_base_gen.expressions" title="Expression Semantics">Expression
+        Semantics</a>
+</h4></div></div></div>
+<p>
+          Let <code class="computeroutput"><span class="identifier">Derived</span></code> be the type
+          that will inherit from <a class="link" href="with_height_base.html" title="with_height_base<Derived,BaseGenerator,T1,T2,Height>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">with_height_base</span></code></a>.
+        </p>
+<p>
+          Let <code class="computeroutput"><span class="identifier">Key</span></code> be the key type.
+        </p>
+<p>
+          Let <code class="computeroutput"><span class="identifier">Data</span></code> be the user data
+          type.
+        </p>
+<p>
+          Let <code class="computeroutput"><span class="identifier">BaseGenerator</span></code> be a
+          valid first template argument for <code class="computeroutput"><span class="identifier">with_height_base_gen</span></code>.
+        </p>
+<p>
+          Let <code class="computeroutput"><span class="identifier">Height</span></code> be the height
+          type.
+        </p>
+<pre class="programlisting"><span class="keyword">typedef</span> boost::mpl::apply_wrap3<span class="special"><</span>
+    <span class="identifier">with_height_base_gen</span><span class="special"><</span><span class="identifier">BaseGenerator</span><span class="special">,</span><span class="identifier">Height</span><span class="special">></span>
+  <span class="special">,</span> <span class="identifier">Derived</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">type</span> <span class="identifier">r</span><span class="special">;</span>
+</pre>
+<p>
+          <span class="bold"><strong>Return type:</strong></span> <code class="literal"><a class="link" href="with_height_base.html" title="with_height_base<Derived,BaseGenerator,T1,T2,Height>">tree_node::with_height_base</a><Derived,BaseGenerator,Key,Data,Height></code>
+        </p>
+<pre class="programlisting"><span class="keyword">typedef</span> boost::mpl::apply_wrap2<span class="special"><</span>
+    <span class="identifier">with_height_base_gen</span><span class="special"><</span><span class="identifier">BaseGenerator</span><span class="special">,</span><span class="identifier">Height</span><span class="special">></span>
+  <span class="special">,</span> <span class="identifier">Derived</span>
+  <span class="special">,</span> <span class="identifier">Data</span>
+<span class="special">>::</span><span class="identifier">type</span> <span class="identifier">r</span><span class="special">;</span>
+</pre>
+<p>
+          <span class="bold"><strong>Return type:</strong></span> <code class="literal"><a class="link" href="with_height_base.html" title="with_height_base<Derived,BaseGenerator,T1,T2,Height>">tree_node::with_height_base</a><Derived,BaseGenerator,Data,void,Height></code>
+        </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.with_height_base_gen.complexity"></a><a class="link" href="with_height_base_gen.html#tree_node.reference.with_height_base_gen.complexity" title="Complexity">Complexity</a>
+</h4></div></div></div>
+<p>
+          Compile time.
+        </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-2013 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="with_height_base.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="with_position.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/with_height_gen.html
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/with_height_gen.html	2013-07-07 14:52:52 EDT (Sun, 07 Jul 2013)	(r84977)
@@ -0,0 +1,201 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>with_height_gen<BaseGenerator></title>
+<link rel="stylesheet" href="http://www.boost.org/doc/libs/release/doc/src/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.77.1">
+<link rel="home" href="../../index.html" title="Chapter 1. tree_node 0.5">
+<link rel="up" href="../reference.html" title="Reference">
+<link rel="prev" href="with_height.html" title="with_height<BaseGenerator,T1,T2,Height>">
+<link rel="next" href="with_height_base.html" title="with_height_base<Derived,BaseGenerator,T1,T2,Height>">
+</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="with_height.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="with_height_base.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="tree_node.reference.with_height_gen"></a><a class="link" href="with_height_gen.html" title="with_height_gen<BaseGenerator>"><code class="computeroutput"><span class="identifier">with_height_gen</span><span class="special"><</span><span class="identifier">BaseGenerator</span><span class="special">></span></code></a>
+</h3></div></div></div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.with_height_gen.synopsis"></a><a class="link" href="with_height_gen.html#tree_node.reference.with_height_gen.synopsis" title="Synopsis">Synopsis</a>
+</h4></div></div></div>
+<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">BaseGenerator</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">Height</span> <span class="special">=</span> <span class="keyword">void</span><span class="special">></span>
+    <span class="keyword">struct</span> <span class="identifier">with_height_gen</span>
+    <span class="special">{</span>
+        <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">T2</span> <span class="special">=</span> <span class="keyword">void</span><span class="special">></span>
+        <span class="keyword">struct</span> <span class="identifier">apply</span>
+        <span class="special">{</span>
+            <span class="keyword">typedef</span> <span class="identifier">with_height</span><span class="special"><</span><span class="identifier">BaseGenerator</span><span class="special">,</span><span class="identifier">T1</span><span class="special">,</span><span class="identifier">T2</span><span class="special">,</span><span class="identifier">Height</span><span class="special">></span> <span class="identifier">type</span><span class="special">;</span>
+        <span class="special">};</span>
+    <span class="special">};</span>
+<span class="special">}}</span>  <span class="comment">// namespace boost::tree_node</span>
+</pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.with_height_gen.description"></a><a class="link" href="with_height_gen.html#tree_node.reference.with_height_gen.description" title="Description">Description</a>
+</h4></div></div></div>
+<p>
+          Selector that can be passed on to generic functions and/or data structures
+          that use <a class="link" href="../concepts/tree_node.html" title="Tree Node"><span class="bold"><strong>Tree
+          Node</strong></span></a> models with constant-time access to node heights.
+          The <code class="computeroutput"><span class="identifier">BaseGenerator</span></code> template
+          argument allows the same models to incorporate other data that the same
+          or other functions and/or data structures might need.
+        </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.with_height_gen.definition"></a><a class="link" href="with_height_gen.html#tree_node.reference.with_height_gen.definition" title="Where defined">Where
+        defined</a>
+</h4></div></div></div>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span>boost/tree_node/with_height.hpp<span class="special">></span>
+</pre>
+<p>
+          To register under Boost.Typeof:
+        </p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span>boost/typeof/boost/tree_node/with_height.hpp<span class="special">></span>
+</pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.with_height_gen.model_of"></a><a class="link" href="with_height_gen.html#tree_node.reference.with_height_gen.model_of" title="Model of">Model
+        of</a>
+</h4></div></div></div>
+<p>
+          <a class="link" href="../concepts/node_type_generator.html" title="Node Type Generator"><span class="bold"><strong>Node
+          Type Generator</strong></span></a>
+        </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.with_height_gen.tpl_param"></a><a class="link" href="with_height_gen.html#tree_node.reference.with_height_gen.tpl_param" title="Template Parameters">Template
+        Parameters</a>
+</h4></div></div></div>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+                  <p>
+                    Parameter
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Description
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Default
+                  </p>
+                </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">BaseGenerator</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    The <a class="link" href="../concepts/base_type_generator.html" title="Base Type Generator"><span class="bold"><strong>Base Type Generator</strong></span></a> from whose
+                    return type <a class="link" href="with_height.html" title="with_height<BaseGenerator,T1,T2,Height>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">with_height</span></code></a> will ultimately
+                    inherit.
+                  </p>
+                </td>
+<td>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">Height</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    The height type.
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">std</span><span class="special">::</span><span class="identifier">size_t</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.with_height_gen.expressions"></a><a class="link" href="with_height_gen.html#tree_node.reference.with_height_gen.expressions" title="Expression Semantics">Expression
+        Semantics</a>
+</h4></div></div></div>
+<p>
+          Let <code class="computeroutput"><span class="identifier">Key</span></code> be the key type.
+        </p>
+<p>
+          Let <code class="computeroutput"><span class="identifier">Data</span></code> be the user data
+          type.
+        </p>
+<p>
+          Let <code class="computeroutput"><span class="identifier">BaseGenerator</span></code> be a
+          valid first template argument for <code class="computeroutput"><span class="identifier">with_height_gen</span></code>.
+        </p>
+<p>
+          Let <code class="computeroutput"><span class="identifier">Height</span></code> be the height
+          type.
+        </p>
+<pre class="programlisting"><span class="keyword">typedef</span> boost::mpl::apply_wrap2<span class="special"><</span>
+    <span class="identifier">with_height_gen</span><span class="special"><</span><span class="identifier">BaseGenerator</span><span class="special">,</span><span class="identifier">Height</span><span class="special">></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">type</span> <span class="identifier">r</span><span class="special">;</span>
+</pre>
+<p>
+          <span class="bold"><strong>Return type:</strong></span> <code class="literal"><a class="link" href="with_height.html" title="with_height<BaseGenerator,T1,T2,Height>">tree_node::with_height</a><BaseGenerator,Key,Data,Height></code>
+        </p>
+<pre class="programlisting"><span class="keyword">typedef</span> boost::mpl::apply_wrap1<span class="special"><</span>
+    <span class="identifier">with_height_gen</span><span class="special"><</span><span class="identifier">BaseGenerator</span><span class="special">,</span><span class="identifier">Height</span><span class="special">></span>
+  <span class="special">,</span> <span class="identifier">Data</span>
+<span class="special">>::</span><span class="identifier">type</span> <span class="identifier">r</span><span class="special">;</span>
+</pre>
+<p>
+          <span class="bold"><strong>Return type:</strong></span> <code class="literal"><a class="link" href="with_height.html" title="with_height<BaseGenerator,T1,T2,Height>">tree_node::with_height</a><BaseGenerator,Data,void,Height></code>
+        </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.with_height_gen.complexity"></a><a class="link" href="with_height_gen.html#tree_node.reference.with_height_gen.complexity" title="Complexity">Complexity</a>
+</h4></div></div></div>
+<p>
+          Compile time.
+        </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-2013 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="with_height.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="with_height_base.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/with_position.html
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/with_position.html	2013-07-07 14:52:52 EDT (Sun, 07 Jul 2013)	(r84977)
@@ -0,0 +1,357 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>with_position<BaseGenerator,T1,T2></title>
+<link rel="stylesheet" href="http://www.boost.org/doc/libs/release/doc/src/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.77.1">
+<link rel="home" href="../../index.html" title="Chapter 1. tree_node 0.5">
+<link rel="up" href="../reference.html" title="Reference">
+<link rel="prev" href="with_height_base_gen.html" title="with_height_base_gen<BaseGenerator>">
+<link rel="next" href="with_position_gen.html" title="with_position_gen<BaseGenerator>">
+</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="with_height_base_gen.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="with_position_gen.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="tree_node.reference.with_position"></a><a class="link" href="with_position.html" title="with_position<BaseGenerator,T1,T2>"><code class="computeroutput"><span class="identifier">with_position</span><span class="special"><</span><span class="identifier">BaseGenerator</span><span class="special">,</span><span class="identifier">T1</span><span class="special">,</span><span class="identifier">T2</span><span class="special">></span></code></a>
+</h3></div></div></div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.with_position.description"></a><a class="link" href="with_position.html#tree_node.reference.with_position.description" title="Description">Description</a>
+</h4></div></div></div>
+<p>
+          This <a class="link" href="../concepts/tree_node.html" title="Tree Node"><span class="bold"><strong>Tree
+          Node</strong></span></a> adaptor provides access to its position in its parent's
+          range of children as well as the other operations it inherits from the
+          return type of <code class="computeroutput"><span class="identifier">BaseGenerator</span></code>.
+        </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.with_position.definition"></a><a class="link" href="with_position.html#tree_node.reference.with_position.definition" title="Where defined">Where
+        defined</a>
+</h4></div></div></div>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span>boost/tree_node/with_position.hpp<span class="special">></span>
+</pre>
+<p>
+          Forward-declared:
+        </p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span>boost/tree_node/with_position_fwd.hpp<span class="special">></span>
+</pre>
+<p>
+          To register under Boost.Typeof:
+        </p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span>boost/typeof/boost/tree_node/with_position.hpp<span class="special">></span>
+</pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.with_position.tpl_param"></a><a class="link" href="with_position.html#tree_node.reference.with_position.tpl_param" title="Template Parameters">Template
+        Parameters</a>
+</h4></div></div></div>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+                  <p>
+                    Parameter
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Description
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Default
+                  </p>
+                </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">BaseGenerator</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    The <a class="link" href="../concepts/base_type_generator.html" title="Base Type Generator"><span class="bold"><strong>Base Type Generator</strong></span></a> from whose
+                    return type <code class="computeroutput"><span class="identifier">with_position</span></code>
+                    will ultimately inherit.
+                  </p>
+                </td>
+<td>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">T1</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    The key type if <code class="computeroutput"><span class="identifier">T2</span></code>
+                    is specified; the user data type otherwise.
+                  </p>
+                </td>
+<td>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">T2</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    The user data type if specified; ignored otherwise.
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">void</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.with_position.model_of"></a><a class="link" href="with_position.html#tree_node.reference.with_position.model_of" title="Model of">Model of</a>
+</h4></div></div></div>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem"><p>
+              <a class="link" href="../concepts/associative_tree_node.html" title="Associative Tree Node"><span class="bold"><strong>Associative Tree Node</strong></span></a> if <code class="computeroutput"><span class="identifier">T2</span></code> is specified; <a class="link" href="../concepts/non_assoc_tree_node.html" title="Non-Associative Tree Node"><span class="bold"><strong>Non-Associative Tree Node</strong></span></a> otherwise
+            </p></li>
+<li class="listitem"><p>
+              any other concept that the return type of <code class="computeroutput"><span class="identifier">BaseGenerator</span></code>
+              models
+            </p></li>
+</ul></div>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.with_position.public_bases"></a><a class="link" href="with_position.html#tree_node.reference.with_position.public_bases" title="Public Base Classes">Public
+        Base Classes</a>
+</h4></div></div></div>
+<pre class="programlisting"><span class="identifier">with_position_base</span><span class="special"><</span>
+    <span class="identifier">with_position</span><span class="special"><</span><span class="identifier">BaseGenerator</span><span class="special">,</span><span class="identifier">T1</span><span class="special">,</span><span class="identifier">T2</span><span class="special">></span>
+  <span class="special">,</span> <span class="identifier">BaseGenerator</span>
+  <span class="special">,</span> <span class="identifier">T1</span>
+  <span class="special">,</span> <span class="identifier">T2</span>
+<span class="special">></span>
+</pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.with_position.members"></a><a class="link" href="with_position.html#tree_node.reference.with_position.members" title="Public Members">Public Members</a>
+</h4></div></div></div>
+<p>
+          In addition to those inherited from the return type of <code class="computeroutput"><span class="identifier">BaseGenerator</span></code>,
+          the following members are defined:
+        </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+                  <p>
+                    Name
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Definition
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Where defined
+                  </p>
+                </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+                  <p>
+                    Emplacement constructor
+                  </p>
+                </td>
+<td>
+<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="special">...</span><span class="identifier">Args</span><span class="special">></span>
+<span class="keyword">explicit</span> <span class="identifier">with_position</span><span class="special">(</span><span class="identifier">Args</span><span class="special">&&</span> <span class="special">...</span><span class="identifier">args</span><span class="special">);</span>
+</pre>
+                </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>
+                    Emplacement constructor with allocator
+                  </p>
+                </td>
+<td>
+<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="special">...</span><span class="identifier">Args</span><span class="special">></span>
+<span class="keyword">explicit</span> <span class="identifier">with_position</span><span class="special">(</span>
+    <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">container</span><span class="special">::</span><span class="identifier">allocator_arg_t</span>
+  <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">traits</span><span class="special">::</span><span class="identifier">allocator_reference</span> <span class="identifier">allocator</span>
+  <span class="special">,</span> <span class="identifier">Args</span><span class="special">&&</span> <span class="special">...</span><span class="identifier">args</span>
+<span class="special">);</span>
+</pre>
+                </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>
+                    Copy constructor
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">with_position</span><span class="special">(</span><span class="identifier">with_position</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">copy</span><span class="special">);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <a class="link" href="../concepts/copyable_tree_node.html" title="Copyable Tree Node"><span class="bold"><strong>Copyable Tree Node</strong></span></a>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Copy constructor with allocator
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">with_position</span><span class="special">(</span>
+    <span class="identifier">with_position</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">copy</span>
+  <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">traits</span><span class="special">::</span><span class="identifier">allocator_reference</span> <span class="identifier">allocator</span>
+<span class="special">);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <a class="link" href="../concepts/copyable_tree_node.html" title="Copyable Tree Node"><span class="bold"><strong>Copyable Tree Node</strong></span></a>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Move constructor
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">with_position</span><span class="special">(</span><span class="identifier">with_position</span><span class="special">&&</span> <span class="identifier">source</span><span class="special">);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <a class="link" href="../concepts/movable_tree_node.html" title="Movable Tree Node"><span class="bold"><strong>Movable Tree Node</strong></span></a>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Move constructor with allocator
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">with_position</span><span class="special">(</span>
+    <span class="identifier">with_position</span><span class="special">&&</span> <span class="identifier">source</span>
+  <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">traits</span><span class="special">::</span><span class="identifier">allocator_reference</span> <span class="identifier">allocator</span>
+<span class="special">);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <a class="link" href="../concepts/movable_tree_node.html" title="Movable Tree Node"><span class="bold"><strong>Movable Tree Node</strong></span></a>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Copy assignment operator
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">with_position</span><span class="special">&</span> <span class="keyword">operator</span><span class="special">=(</span><span class="identifier">with_position</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">copy</span><span class="special">);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Assignable
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Move assignment operator
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">with_position</span><span class="special">&</span> <span class="keyword">operator</span><span class="special">=(</span><span class="identifier">with_position</span><span class="special">&&</span> <span class="identifier">source</span><span class="special">);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Movable
+                  </p>
+                </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.with_position.non_members"></a><a class="link" href="with_position.html#tree_node.reference.with_position.non_members" title="Non-members">Non-members</a>
+</h4></div></div></div>
+<p>
+          Same as those defined in <a class="link" href="with_position_base.html" title="with_position_base<Derived,BaseGenerator,T1,T2>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">with_position_base</span></code></a>.
+        </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-2013 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="with_height_base_gen.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="with_position_gen.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/with_position_base.html
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/with_position_base.html	2013-07-07 14:52:52 EDT (Sun, 07 Jul 2013)	(r84977)
@@ -0,0 +1,531 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>with_position_base<Derived,BaseGenerator,T1,T2></title>
+<link rel="stylesheet" href="http://www.boost.org/doc/libs/release/doc/src/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.77.1">
+<link rel="home" href="../../index.html" title="Chapter 1. tree_node 0.5">
+<link rel="up" href="../reference.html" title="Reference">
+<link rel="prev" href="with_position_gen.html" title="with_position_gen<BaseGenerator>">
+<link rel="next" href="with_position_base_gen.html" title="with_position_base_gen<BaseGenerator>">
+</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="with_position_gen.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="with_position_base_gen.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="tree_node.reference.with_position_base"></a><a class="link" href="with_position_base.html" title="with_position_base<Derived,BaseGenerator,T1,T2>"><code class="computeroutput"><span class="identifier">with_position_base</span><span class="special"><</span><span class="identifier">Derived</span><span class="special">,</span><span class="identifier">BaseGenerator</span><span class="special">,</span><span class="identifier">T1</span><span class="special">,</span><span class="identifier">T2</span><span class="special">></span></code></a>
+</h3></div></div></div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.with_position_base.description"></a><a class="link" href="with_position_base.html#tree_node.reference.with_position_base.description" title="Description">Description</a>
+</h4></div></div></div>
+<p>
+          The <a class="link" href="with_position.html" title="with_position<BaseGenerator,T1,T2>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">with_position</span></code></a>
+          class template inherits its functionality from this class template. They
+          differ only with regard to template parameters: the <a class="link" href="with_position.html" title="with_position<BaseGenerator,T1,T2>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">with_position</span></code></a> class template is
+          meant to be used directly as a data structure, while <code class="computeroutput"><span class="identifier">with_position_base</span></code>
+          is more suitable as a base class template from which other <a class="link" href="../concepts/tree_node.html" title="Tree Node"><span class="bold"><strong>Tree Node</strong></span></a> adaptor class templates can derive
+          via the <a class="link" href="with_position_base_gen.html" title="with_position_base_gen<BaseGenerator>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">with_position_base_gen</span></code></a> <a class="link" href="../concepts/base_type_generator.html" title="Base Type Generator"><span class="bold"><strong>Base Type Generator</strong></span></a>.
+        </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.with_position_base.definition"></a><a class="link" href="with_position_base.html#tree_node.reference.with_position_base.definition" title="Where defined">Where
+        defined</a>
+</h4></div></div></div>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span>boost/tree_node/with_position.hpp<span class="special">></span>
+</pre>
+<p>
+          Forward-declared:
+        </p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span>boost/tree_node/with_position_fwd.hpp<span class="special">></span>
+</pre>
+<p>
+          To register under Boost.Typeof:
+        </p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span>boost/typeof/boost/tree_node/with_position.hpp<span class="special">></span>
+</pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.with_position_base.tpl_param"></a><a class="link" href="with_position_base.html#tree_node.reference.with_position_base.tpl_param" title="Template Parameters">Template
+        Parameters</a>
+</h4></div></div></div>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+                  <p>
+                    Parameter
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Description
+                  </p>
+                </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">Derived</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    The most descendant type that will inherit from this one.
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">BaseGenerator</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    The <a class="link" href="../concepts/base_type_generator.html" title="Base Type Generator"><span class="bold"><strong>Base Type Generator</strong></span></a> from whose
+                    return type <code class="computeroutput"><span class="identifier">with_position_base</span></code>
+                    will inherit.
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">T1</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    The key type if <code class="computeroutput"><span class="identifier">T2</span></code>
+                    is not <code class="computeroutput"><span class="keyword">void</span></code>; the
+                    user data type otherwise.
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">T2</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    The user data type if not <code class="computeroutput"><span class="keyword">void</span></code>;
+                    ignored otherwise.
+                  </p>
+                </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.with_position_base.model_of"></a><a class="link" href="with_position_base.html#tree_node.reference.with_position_base.model_of" title="Model of">Model
+        of</a>
+</h4></div></div></div>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem"><p>
+              <a class="link" href="../concepts/associative_tree_node.html" title="Associative Tree Node"><span class="bold"><strong>Associative Tree Node</strong></span></a> if <code class="computeroutput"><span class="identifier">T2</span></code> is not <code class="computeroutput"><span class="keyword">void</span></code>;
+              <a class="link" href="../concepts/non_assoc_tree_node.html" title="Non-Associative Tree Node"><span class="bold"><strong>Non-Associative
+              Tree Node</strong></span></a> otherwise
+            </p></li>
+<li class="listitem"><p>
+              <a class="link" href="../concepts/base_tree_node.html" title="Base Tree Node"><span class="bold"><strong>Base
+              Tree Node</strong></span></a>
+            </p></li>
+<li class="listitem"><p>
+              any other concept that the return type of <code class="computeroutput"><span class="identifier">BaseGenerator</span></code>
+              models
+            </p></li>
+</ul></div>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.with_position_base.public_bases"></a><a class="link" href="with_position_base.html#tree_node.reference.with_position_base.public_bases" title="Public Base Classes">Public
+        Base Classes</a>
+</h4></div></div></div>
+<pre class="programlisting"><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">eval_if</span><span class="special"><</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">is_void</span><span class="special"><</span><span class="identifier">T2</span><span class="special">></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">apply_wrap2</span><span class="special"><</span><span class="identifier">BaseGenerator</span><span class="special">,</span><span class="identifier">Derived</span><span class="special">,</span><span class="identifier">T1</span><span class="special">></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">apply_wrap3</span><span class="special"><</span><span class="identifier">BaseGenerator</span><span class="special">,</span><span class="identifier">Derived</span><span class="special">,</span><span class="identifier">T1</span><span class="special">,</span><span class="identifier">T2</span><span class="special">></span>
+<span class="special">>::</span><span class="identifier">type</span>
+</pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.with_position_base.members"></a><a class="link" href="with_position_base.html#tree_node.reference.with_position_base.members" title="Members">Members</a>
+</h4></div></div></div>
+<p>
+          In addition to those inherited from the return type of <code class="computeroutput"><span class="identifier">BaseGenerator</span></code>,
+          the following members are defined:
+        </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+                  <p>
+                    Name
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Definition
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Scope
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Description
+                  </p>
+                </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+                  <p>
+                    Emplacement constructor
+                  </p>
+                </td>
+<td>
+<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="special">...</span><span class="identifier">Args</span><span class="special">></span>
+<span class="keyword">explicit</span> <span class="identifier">with_position_base</span><span class="special">(</span><span class="identifier">Args</span><span class="special">&&</span> <span class="special">...</span><span class="identifier">args</span><span class="special">);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">protected</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>
+                    Emplacement constructor with allocator
+                  </p>
+                </td>
+<td>
+<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="special">...</span><span class="identifier">Args</span><span class="special">></span>
+<span class="keyword">explicit</span> <span class="identifier">with_position_base</span><span class="special">(</span>
+    <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">container</span><span class="special">::</span><span class="identifier">allocator_arg_t</span>
+  <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">traits</span><span class="special">::</span><span class="identifier">allocator_reference</span> <span class="identifier">allocator</span>
+  <span class="special">,</span> <span class="identifier">Args</span><span class="special">&&</span> <span class="special">...</span><span class="identifier">args</span>
+<span class="special">);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">protected</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>
+                    Derived copy constructor
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">with_position_base</span><span class="special">(</span><span class="identifier">Derived</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">copy</span><span class="special">);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">protected</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Defined by the <a class="link" href="../concepts/base_tree_node.html" title="Base Tree Node"><span class="bold"><strong>Base Tree Node</strong></span></a> concept.
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Derived copy constructor with allocator
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">with_position_base</span><span class="special">(</span>
+    <span class="identifier">Derived</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">copy</span>
+  <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">traits</span><span class="special">::</span><span class="identifier">allocator_reference</span> <span class="identifier">allocator</span>
+<span class="special">);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">protected</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Defined by the <a class="link" href="../concepts/base_tree_node.html" title="Base Tree Node"><span class="bold"><strong>Base Tree Node</strong></span></a> concept.
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Derived move constructor
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">with_position_base</span><span class="special">(</span><span class="identifier">Derived</span><span class="special">&&</span> <span class="identifier">source</span><span class="special">);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">protected</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Defined by the <a class="link" href="../concepts/base_tree_node.html" title="Base Tree Node"><span class="bold"><strong>Base Tree Node</strong></span></a> concept.
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Derived move constructor with allocator
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">with_position_base</span><span class="special">(</span>
+    <span class="identifier">Derived</span><span class="special">&&</span> <span class="identifier">source</span>
+  <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">traits</span><span class="special">::</span><span class="identifier">allocator_reference</span> <span class="identifier">allocator</span>
+<span class="special">);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">protected</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Defined by the <a class="link" href="../concepts/base_tree_node.html" title="Base Tree Node"><span class="bold"><strong>Base Tree Node</strong></span></a> concept.
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Position member read-only access
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">const_iterator</span> <span class="keyword">operator</span><span class="special">[](</span><span class="identifier">position_key</span> <span class="keyword">const</span><span class="special">&)</span> <span class="keyword">const</span><span class="special">;</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">public</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Returns the immutable iterator that points to this tree node.
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Position member access
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">iterator</span> <span class="keyword">operator</span><span class="special">[](</span><span class="identifier">position_key</span> <span class="keyword">const</span><span class="special">&);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">public</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Returns the iterator that points to this tree node.
+                  </p>
+                </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.with_position_base.non_members"></a><a class="link" href="with_position_base.html#tree_node.reference.with_position_base.non_members" title="Non-members">Non-members</a>
+</h4></div></div></div>
+<p>
+          In addition to those inherited from the return type of <code class="computeroutput"><span class="identifier">BaseGenerator</span></code>,
+          the following non-members are defined.
+        </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+                  <p>
+                    Name
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Definition
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Where defined
+                  </p>
+                </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+                  <p>
+                    Position read-only access
+                  </p>
+                </td>
+<td>
+<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">Derived</span>
+      <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">BaseGenerator</span>
+      <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">T1</span>
+      <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">T2</span>
+    <span class="special">></span>
+    <span class="keyword">typename</span> <span class="identifier">with_position_base</span><span class="special"><</span>
+        <span class="identifier">Derived</span>
+      <span class="special">,</span> <span class="identifier">BaseGenerator</span>
+      <span class="special">,</span> <span class="identifier">T1</span>
+      <span class="special">,</span> <span class="identifier">T2</span>
+    <span class="special">>::</span><span class="identifier">const_iterator</span>
+        <span class="identifier">get</span><span class="special">(</span>
+            <span class="identifier">with_position_base</span><span class="special"><</span><span class="identifier">Derived</span><span class="special">,</span><span class="identifier">BaseGenerator</span><span class="special">,</span><span class="identifier">T1</span><span class="special">,</span><span class="identifier">T2</span><span class="special">></span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">node</span>
+          <span class="special">,</span> <span class="identifier">position_key</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">key</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">Derived</span>
+      <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">BaseGenerator</span>
+      <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">T1</span>
+      <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">T2</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">std</span><span class="special">::</span><span class="identifier">tr1</span><span class="special">::</span><span class="identifier">is_same</span><span class="special"><</span><span class="identifier">Key</span><span class="special">,</span><span class="identifier">position_key</span><span class="special">></span>
+      <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">with_position_base</span><span class="special"><</span>
+            <span class="identifier">Derived</span>
+          <span class="special">,</span> <span class="identifier">BaseGenerator</span>
+          <span class="special">,</span> <span class="identifier">T1</span>
+          <span class="special">,</span> <span class="identifier">T2</span>
+        <span class="special">>::</span><span class="identifier">const_iterator</span>
+    <span class="special">>::</span><span class="identifier">type</span>
+        <span class="identifier">get</span><span class="special">(</span><span class="identifier">with_position_base</span><span class="special"><</span><span class="identifier">Derived</span><span class="special">,</span><span class="identifier">BaseGenerator</span><span class="special">,</span><span class="identifier">T1</span><span class="special">,</span><span class="identifier">T2</span><span class="special">></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>
+                </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>
+                    Position access
+                  </p>
+                </td>
+<td>
+<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">Derived</span>
+      <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">BaseGenerator</span>
+      <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">T1</span>
+      <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">T2</span>
+    <span class="special">></span>
+    <span class="keyword">typename</span> <span class="identifier">with_position_base</span><span class="special"><</span><span class="identifier">Derived</span><span class="special">,</span><span class="identifier">BaseGenerator</span><span class="special">,</span><span class="identifier">T1</span><span class="special">,</span><span class="identifier">T2</span><span class="special">>::</span><span class="identifier">iterator</span>
+        <span class="identifier">get</span><span class="special">(</span>
+            <span class="identifier">with_position_base</span><span class="special"><</span><span class="identifier">Derived</span><span class="special">,</span><span class="identifier">BaseGenerator</span><span class="special">,</span><span class="identifier">T1</span><span class="special">,</span><span class="identifier">T2</span><span class="special">>&</span> <span class="identifier">node</span>
+          <span class="special">,</span> <span class="identifier">position_key</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">key</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">Derived</span>
+      <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">BaseGenerator</span>
+      <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">T1</span>
+      <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">T2</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">std</span><span class="special">::</span><span class="identifier">tr1</span><span class="special">::</span><span class="identifier">is_same</span><span class="special"><</span><span class="identifier">Key</span><span class="special">,</span><span class="identifier">position_key</span><span class="special">></span>
+      <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">with_position_base</span><span class="special"><</span><span class="identifier">Derived</span><span class="special">,</span><span class="identifier">BaseGenerator</span><span class="special">,</span><span class="identifier">T1</span><span class="special">,</span><span class="identifier">T2</span><span class="special">>::</span><span class="identifier">iterator</span>
+    <span class="special">>::</span><span class="identifier">type</span>
+        <span class="identifier">get</span><span class="special">(</span><span class="identifier">with_position_base</span><span class="special"><</span><span class="identifier">Derived</span><span class="special">,</span><span class="identifier">BaseGenerator</span><span class="special">,</span><span class="identifier">T1</span><span class="special">,</span><span class="identifier">T2</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>
+                </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>
+<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-2013 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="with_position_gen.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="with_position_base_gen.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/with_position_base_gen.html
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/with_position_base_gen.html	2013-07-07 14:52:52 EDT (Sun, 07 Jul 2013)	(r84977)
@@ -0,0 +1,185 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>with_position_base_gen<BaseGenerator></title>
+<link rel="stylesheet" href="http://www.boost.org/doc/libs/release/doc/src/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.77.1">
+<link rel="home" href="../../index.html" title="Chapter 1. tree_node 0.5">
+<link rel="up" href="../reference.html" title="Reference">
+<link rel="prev" href="with_position_base.html" title="with_position_base<Derived,BaseGenerator,T1,T2>">
+<link rel="next" href="with_rb_flag.html" title="with_red_black_flag<BaseGenerator,T1,T2>">
+</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="with_position_base.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="with_rb_flag.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="tree_node.reference.with_position_base_gen"></a><a class="link" href="with_position_base_gen.html" title="with_position_base_gen<BaseGenerator>"><code class="computeroutput"><span class="identifier">with_position_base_gen</span><span class="special"><</span><span class="identifier">BaseGenerator</span><span class="special">></span></code></a>
+</h3></div></div></div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.with_position_base_gen.synopsis"></a><a class="link" href="with_position_base_gen.html#tree_node.reference.with_position_base_gen.synopsis" title="Synopsis">Synopsis</a>
+</h4></div></div></div>
+<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">BaseGenerator</span><span class="special">></span>
+    <span class="keyword">struct</span> <span class="identifier">with_position_base_gen</span>
+    <span class="special">{</span>
+        <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">Derived</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">T2</span> <span class="special">=</span> <span class="keyword">void</span><span class="special">></span>
+        <span class="keyword">struct</span> <span class="identifier">apply</span>
+        <span class="special">{</span>
+            <span class="keyword">typedef</span> <span class="identifier">with_position_base</span><span class="special"><</span><span class="identifier">Derived</span><span class="special">,</span><span class="identifier">BaseGenerator</span><span class="special">,</span><span class="identifier">T1</span><span class="special">,</span><span class="identifier">T2</span><span class="special">></span> <span class="identifier">type</span><span class="special">;</span>
+        <span class="special">};</span>
+    <span class="special">};</span>
+<span class="special">}}</span>  <span class="comment">// namespace boost::tree_node</span>
+</pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.with_position_base_gen.description"></a><a class="link" href="with_position_base_gen.html#tree_node.reference.with_position_base_gen.description" title="Description">Description</a>
+</h4></div></div></div>
+<p>
+          Selector that can be passed on to generic functions and/or data structures
+          that use <a class="link" href="../concepts/base_tree_node.html" title="Base Tree Node"><span class="bold"><strong>Base
+          Tree Node</strong></span></a> models with constant-time access to node positions.
+          The <code class="computeroutput"><span class="identifier">BaseGenerator</span></code> template
+          argument allows the same models to incorporate other data that the same
+          or other functions and/or data structures might need.
+        </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.with_position_base_gen.definition"></a><a class="link" href="with_position_base_gen.html#tree_node.reference.with_position_base_gen.definition" title="Where defined">Where
+        defined</a>
+</h4></div></div></div>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span>boost/tree_node/with_position.hpp<span class="special">></span>
+</pre>
+<p>
+          To register under Boost.Typeof:
+        </p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span>boost/typeof/boost/tree_node/with_position.hpp<span class="special">></span>
+</pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.with_position_base_gen.model_of"></a><a class="link" href="with_position_base_gen.html#tree_node.reference.with_position_base_gen.model_of" title="Model of">Model
+        of</a>
+</h4></div></div></div>
+<p>
+          <a class="link" href="../concepts/base_type_generator.html" title="Base Type Generator"><span class="bold"><strong>Base
+          Type Generator</strong></span></a>
+        </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.with_position_base_gen.tpl_param"></a><a class="link" href="with_position_base_gen.html#tree_node.reference.with_position_base_gen.tpl_param" title="Template Parameters">Template
+        Parameters</a>
+</h4></div></div></div>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+                  <p>
+                    Parameter
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Description
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Default
+                  </p>
+                </th>
+</tr></thead>
+<tbody><tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">BaseGenerator</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    The <a class="link" href="../concepts/base_type_generator.html" title="Base Type Generator"><span class="bold"><strong>Base Type Generator</strong></span></a> from whose
+                    return type <a class="link" href="with_position_base.html" title="with_position_base<Derived,BaseGenerator,T1,T2>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">with_position_base</span></code></a> will
+                    inherit.
+                  </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.with_position_base_gen.expressions"></a><a class="link" href="with_position_base_gen.html#tree_node.reference.with_position_base_gen.expressions" title="Expression Semantics">Expression
+        Semantics</a>
+</h4></div></div></div>
+<p>
+          Let <code class="computeroutput"><span class="identifier">Derived</span></code> be the type
+          that will inherit from <a class="link" href="with_position_base.html" title="with_position_base<Derived,BaseGenerator,T1,T2>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">with_position_base</span></code></a>.
+        </p>
+<p>
+          Let <code class="computeroutput"><span class="identifier">Key</span></code> be the key type.
+        </p>
+<p>
+          Let <code class="computeroutput"><span class="identifier">Data</span></code> be the user data
+          type.
+        </p>
+<p>
+          Let <code class="computeroutput"><span class="identifier">BaseGenerator</span></code> be a
+          valid <code class="computeroutput"><span class="identifier">with_position_base_gen</span></code>
+          template argument.
+        </p>
+<pre class="programlisting"><span class="keyword">typedef</span> boost::mpl::apply_wrap3<span class="special"><</span>
+    <span class="identifier">with_position_base_gen</span><span class="special"><</span><span class="identifier">BaseGenerator</span><span class="special">></span>
+  <span class="special">,</span> <span class="identifier">Derived</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">type</span> <span class="identifier">r</span><span class="special">;</span>
+</pre>
+<p>
+          <span class="bold"><strong>Return type:</strong></span> <code class="literal"><a class="link" href="with_position_base.html" title="with_position_base<Derived,BaseGenerator,T1,T2>">tree_node::with_position_base</a><Derived,BaseGenerator,Key,Data></code>
+        </p>
+<pre class="programlisting"><span class="keyword">typedef</span> boost::mpl::apply_wrap2<span class="special"><</span>
+    <span class="identifier">with_position_base_gen</span><span class="special"><</span><span class="identifier">BaseGenerator</span><span class="special">></span>
+  <span class="special">,</span> <span class="identifier">Derived</span>
+  <span class="special">,</span> <span class="identifier">Data</span>
+<span class="special">>::</span><span class="identifier">type</span> <span class="identifier">r</span><span class="special">;</span>
+</pre>
+<p>
+          <span class="bold"><strong>Return type:</strong></span> <code class="literal"><a class="link" href="with_position_base.html" title="with_position_base<Derived,BaseGenerator,T1,T2>">tree_node::with_position_base</a><Derived,BaseGenerator,Data,void></code>
+        </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.with_position_base_gen.complexity"></a><a class="link" href="with_position_base_gen.html#tree_node.reference.with_position_base_gen.complexity" title="Complexity">Complexity</a>
+</h4></div></div></div>
+<p>
+          Compile time.
+        </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-2013 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="with_position_base.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="with_rb_flag.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/with_position_gen.html
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/with_position_gen.html	2013-07-07 14:52:52 EDT (Sun, 07 Jul 2013)	(r84977)
@@ -0,0 +1,179 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>with_position_gen<BaseGenerator></title>
+<link rel="stylesheet" href="http://www.boost.org/doc/libs/release/doc/src/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.77.1">
+<link rel="home" href="../../index.html" title="Chapter 1. tree_node 0.5">
+<link rel="up" href="../reference.html" title="Reference">
+<link rel="prev" href="with_position.html" title="with_position<BaseGenerator,T1,T2>">
+<link rel="next" href="with_position_base.html" title="with_position_base<Derived,BaseGenerator,T1,T2>">
+</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="with_position.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="with_position_base.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="tree_node.reference.with_position_gen"></a><a class="link" href="with_position_gen.html" title="with_position_gen<BaseGenerator>"><code class="computeroutput"><span class="identifier">with_position_gen</span><span class="special"><</span><span class="identifier">BaseGenerator</span><span class="special">></span></code></a>
+</h3></div></div></div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.with_position_gen.synopsis"></a><a class="link" href="with_position_gen.html#tree_node.reference.with_position_gen.synopsis" title="Synopsis">Synopsis</a>
+</h4></div></div></div>
+<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">BaseGenerator</span><span class="special">></span>
+    <span class="keyword">struct</span> <span class="identifier">with_position_gen</span>
+    <span class="special">{</span>
+        <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">T2</span> <span class="special">=</span> <span class="keyword">void</span><span class="special">></span>
+        <span class="keyword">struct</span> <span class="identifier">apply</span>
+        <span class="special">{</span>
+            <span class="keyword">typedef</span> <span class="identifier">with_position</span><span class="special"><</span><span class="identifier">BaseGenerator</span><span class="special">,</span><span class="identifier">T1</span><span class="special">,</span><span class="identifier">T2</span><span class="special">></span> <span class="identifier">type</span><span class="special">;</span>
+        <span class="special">};</span>
+    <span class="special">};</span>
+<span class="special">}}</span>  <span class="comment">// namespace boost::tree_node</span>
+</pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.with_position_gen.description"></a><a class="link" href="with_position_gen.html#tree_node.reference.with_position_gen.description" title="Description">Description</a>
+</h4></div></div></div>
+<p>
+          Selector that can be passed on to generic functions and/or data structures
+          that use <a class="link" href="../concepts/tree_node.html" title="Tree Node"><span class="bold"><strong>Tree
+          Node</strong></span></a> models with constant-time access to node positions.
+          The <code class="computeroutput"><span class="identifier">BaseGenerator</span></code> template
+          argument allows the same models to incorporate other data that the same
+          or other functions and/or data structures might need.
+        </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.with_position_gen.definition"></a><a class="link" href="with_position_gen.html#tree_node.reference.with_position_gen.definition" title="Where defined">Where
+        defined</a>
+</h4></div></div></div>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span>boost/tree_node/with_position.hpp<span class="special">></span>
+</pre>
+<p>
+          To register under Boost.Typeof:
+        </p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span>boost/typeof/boost/tree_node/with_position.hpp<span class="special">></span>
+</pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.with_position_gen.model_of"></a><a class="link" href="with_position_gen.html#tree_node.reference.with_position_gen.model_of" title="Model of">Model
+        of</a>
+</h4></div></div></div>
+<p>
+          <a class="link" href="../concepts/node_type_generator.html" title="Node Type Generator"><span class="bold"><strong>Node
+          Type Generator</strong></span></a>
+        </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.with_position_gen.tpl_param"></a><a class="link" href="with_position_gen.html#tree_node.reference.with_position_gen.tpl_param" title="Template Parameters">Template
+        Parameters</a>
+</h4></div></div></div>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+                  <p>
+                    Parameter
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Description
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Default
+                  </p>
+                </th>
+</tr></thead>
+<tbody><tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">BaseGenerator</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    The <a class="link" href="../concepts/base_type_generator.html" title="Base Type Generator"><span class="bold"><strong>Base Type Generator</strong></span></a> from whose
+                    return type <a class="link" href="with_position.html" title="with_position<BaseGenerator,T1,T2>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">with_position</span></code></a> will ultimately
+                    inherit.
+                  </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.with_position_gen.expressions"></a><a class="link" href="with_position_gen.html#tree_node.reference.with_position_gen.expressions" title="Expression Semantics">Expression
+        Semantics</a>
+</h4></div></div></div>
+<p>
+          Let <code class="computeroutput"><span class="identifier">Key</span></code> be the key type.
+        </p>
+<p>
+          Let <code class="computeroutput"><span class="identifier">Data</span></code> be the user data
+          type.
+        </p>
+<p>
+          Let <code class="computeroutput"><span class="identifier">BaseGenerator</span></code> be a
+          valid <code class="computeroutput"><span class="identifier">with_position_gen</span></code>
+          template argument.
+        </p>
+<pre class="programlisting"><span class="keyword">typedef</span> boost::mpl::apply_wrap2<span class="special"><</span>
+    <span class="identifier">with_position_gen</span><span class="special"><</span><span class="identifier">BaseGenerator</span><span class="special">></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">type</span> <span class="identifier">r</span><span class="special">;</span>
+</pre>
+<p>
+          <span class="bold"><strong>Return type:</strong></span> <code class="literal"><a class="link" href="with_position.html" title="with_position<BaseGenerator,T1,T2>">tree_node::with_position</a><BaseGenerator,Key,Data></code>
+        </p>
+<pre class="programlisting"><span class="keyword">typedef</span> boost::mpl::apply_wrap1<span class="special"><</span>
+    <span class="identifier">with_position_gen</span><span class="special"><</span><span class="identifier">BaseGenerator</span><span class="special">></span>
+  <span class="special">,</span> <span class="identifier">Data</span>
+<span class="special">>::</span><span class="identifier">type</span> <span class="identifier">r</span><span class="special">;</span>
+</pre>
+<p>
+          <span class="bold"><strong>Return type:</strong></span> <code class="literal"><a class="link" href="with_position.html" title="with_position<BaseGenerator,T1,T2>">tree_node::with_position</a><BaseGenerator,Data,void></code>
+        </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.with_position_gen.complexity"></a><a class="link" href="with_position_gen.html#tree_node.reference.with_position_gen.complexity" title="Complexity">Complexity</a>
+</h4></div></div></div>
+<p>
+          Compile time.
+        </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-2013 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="with_position.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="with_position_base.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/with_rb_flag.html
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/with_rb_flag.html	2013-07-07 14:52:52 EDT (Sun, 07 Jul 2013)	(r84977)
@@ -0,0 +1,359 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>with_red_black_flag<BaseGenerator,T1,T2></title>
+<link rel="stylesheet" href="http://www.boost.org/doc/libs/release/doc/src/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.77.1">
+<link rel="home" href="../../index.html" title="Chapter 1. tree_node 0.5">
+<link rel="up" href="../reference.html" title="Reference">
+<link rel="prev" href="with_position_base_gen.html" title="with_position_base_gen<BaseGenerator>">
+<link rel="next" href="with_rb_flag_gen.html" title="with_red_black_flag_gen<BaseGenerator>">
+</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="with_position_base_gen.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="with_rb_flag_gen.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="tree_node.reference.with_rb_flag"></a><a class="link" href="with_rb_flag.html" title="with_red_black_flag<BaseGenerator,T1,T2>"><code class="computeroutput"><span class="identifier">with_red_black_flag</span><span class="special"><</span><span class="identifier">BaseGenerator</span><span class="special">,</span><span class="identifier">T1</span><span class="special">,</span><span class="identifier">T2</span><span class="special">></span></code></a>
+</h3></div></div></div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.with_rb_flag.description"></a><a class="link" href="with_rb_flag.html#tree_node.reference.with_rb_flag.description" title="Description">Description</a>
+</h4></div></div></div>
+<p>
+          In addition to the other operations it inherits from the return type of
+          <code class="computeroutput"><span class="identifier">BaseGenerator</span></code>, this <a class="link" href="../concepts/tree_node.html" title="Tree Node"><span class="bold"><strong>Tree Node</strong></span></a>
+          adaptor provides access to a flag that indicates whether the node is red
+          or black.
+        </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.with_rb_flag.definition"></a><a class="link" href="with_rb_flag.html#tree_node.reference.with_rb_flag.definition" title="Where defined">Where
+        defined</a>
+</h4></div></div></div>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span>boost/tree_node/with_red_black_flag.hpp<span class="special">></span>
+</pre>
+<p>
+          Forward-declared:
+        </p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span>boost/tree_node/with_red_black_flag_fwd.hpp<span class="special">></span>
+</pre>
+<p>
+          To register under Boost.Typeof:
+        </p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span>boost/typeof/boost/tree_node/with_red_black_flag.hpp<span class="special">></span>
+</pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.with_rb_flag.tpl_param"></a><a class="link" href="with_rb_flag.html#tree_node.reference.with_rb_flag.tpl_param" title="Template Parameters">Template
+        Parameters</a>
+</h4></div></div></div>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+                  <p>
+                    Parameter
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Description
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Default
+                  </p>
+                </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">BaseGenerator</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    The <a class="link" href="../concepts/base_type_generator.html" title="Base Type Generator"><span class="bold"><strong>Base Type Generator</strong></span></a> model from
+                    whose return type <code class="computeroutput"><span class="identifier">with_red_black_flag</span></code>
+                    will ultimately inherit.
+                  </p>
+                </td>
+<td>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">T1</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    The key type if <code class="computeroutput"><span class="identifier">T2</span></code>
+                    is specified; the user data type otherwise.
+                  </p>
+                </td>
+<td>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">T2</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    The user data type if specified; ignored otherwise.
+                  </p>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">void</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.with_rb_flag.model_of"></a><a class="link" href="with_rb_flag.html#tree_node.reference.with_rb_flag.model_of" title="Model of">Model of</a>
+</h4></div></div></div>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem"><p>
+              <a class="link" href="../concepts/associative_tree_node.html" title="Associative Tree Node"><span class="bold"><strong>Associative Tree Node</strong></span></a> if <code class="computeroutput"><span class="identifier">T2</span></code> is specified; <a class="link" href="../concepts/non_assoc_tree_node.html" title="Non-Associative Tree Node"><span class="bold"><strong>Non-Associative Tree Node</strong></span></a> otherwise
+            </p></li>
+<li class="listitem"><p>
+              any other concept that the return type of <code class="computeroutput"><span class="identifier">BaseGenerator</span></code>
+              models
+            </p></li>
+</ul></div>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.with_rb_flag.public_bases"></a><a class="link" href="with_rb_flag.html#tree_node.reference.with_rb_flag.public_bases" title="Public Base Classes">Public
+        Base Classes</a>
+</h4></div></div></div>
+<pre class="programlisting"><span class="identifier">with_red_black_flag_base</span><span class="special"><</span>
+    <span class="identifier">with_red_black_flag</span><span class="special"><</span><span class="identifier">BaseGenerator</span><span class="special">,</span><span class="identifier">T1</span><span class="special">,</span><span class="identifier">T2</span><span class="special">></span>
+  <span class="special">,</span> <span class="identifier">BaseGenerator</span>
+  <span class="special">,</span> <span class="identifier">T1</span>
+  <span class="special">,</span> <span class="identifier">T2</span>
+<span class="special">></span>
+</pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.with_rb_flag.members"></a><a class="link" href="with_rb_flag.html#tree_node.reference.with_rb_flag.members" title="Public Members">Public Members</a>
+</h4></div></div></div>
+<p>
+          In addition to those inherited from the return type of <code class="computeroutput"><span class="identifier">BaseGenerator</span></code>,
+          the following members are defined:
+        </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+                  <p>
+                    Name
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Definition
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Where defined
+                  </p>
+                </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+                  <p>
+                    Emplacement constructor
+                  </p>
+                </td>
+<td>
+<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="special">...</span><span class="identifier">Args</span><span class="special">></span>
+<span class="keyword">explicit</span> <span class="identifier">with_red_black_flag</span><span class="special">(</span><span class="identifier">Args</span><span class="special">&&</span> <span class="special">...</span><span class="identifier">args</span><span class="special">);</span>
+</pre>
+                </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>
+                    Emplacement constructor with allocator
+                  </p>
+                </td>
+<td>
+<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="special">...</span><span class="identifier">Args</span><span class="special">></span>
+<span class="keyword">explicit</span> <span class="identifier">with_red_black_flag</span><span class="special">(</span>
+    <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">container</span><span class="special">::</span><span class="identifier">allocator_arg_t</span>
+  <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">traits</span><span class="special">::</span><span class="identifier">allocator_reference</span> <span class="identifier">allocator</span>
+  <span class="special">,</span> <span class="identifier">Args</span><span class="special">&&</span> <span class="special">...</span><span class="identifier">args</span>
+<span class="special">);</span>
+</pre>
+                </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>
+                    Copy constructor
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">with_red_black_flag</span><span class="special">(</span><span class="identifier">with_red_black_flag</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">copy</span><span class="special">);</span>
+</pre>
+                </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>
+                    Copy constructor with allocator
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">with_red_black_flag</span><span class="special">(</span>
+    <span class="identifier">with_red_black_flag</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">copy</span>
+  <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">traits</span><span class="special">::</span><span class="identifier">allocator_reference</span> <span class="identifier">allocator</span>
+<span class="special">);</span>
+</pre>
+                </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>
+                    Move constructor
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">with_red_black_flag</span><span class="special">(</span><span class="identifier">with_red_black_flag</span><span class="special">&&</span> <span class="identifier">source</span><span class="special">);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <a class="link" href="../concepts/movable_tree_node.html" title="Movable Tree Node"><span class="bold"><strong>Movable Tree Node</strong></span></a>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Move constructor with allocator
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">with_red_black_flag</span><span class="special">(</span>
+    <span class="identifier">with_red_black_flag</span><span class="special">&&</span> <span class="identifier">source</span>
+  <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">traits</span><span class="special">::</span><span class="identifier">allocator_reference</span> <span class="identifier">allocator</span>
+<span class="special">);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <a class="link" href="../concepts/movable_tree_node.html" title="Movable Tree Node"><span class="bold"><strong>Movable Tree Node</strong></span></a>
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Copy assignment operator
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">with_red_black_flag</span><span class="special">&</span> <span class="keyword">operator</span><span class="special">=(</span><span class="identifier">with_red_black_flag</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">copy</span><span class="special">);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Assignable
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Move assignment operator
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">with_red_black_flag</span><span class="special">&</span> <span class="keyword">operator</span><span class="special">=(</span><span class="identifier">with_red_black_flag</span><span class="special">&&</span> <span class="identifier">source</span><span class="special">);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    Movable
+                  </p>
+                </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.with_rb_flag.non_members"></a><a class="link" href="with_rb_flag.html#tree_node.reference.with_rb_flag.non_members" title="Non-members">Non-members</a>
+</h4></div></div></div>
+<p>
+          Same as those defined in <a class="link" href="with_rb_flag_base.html" title="with_red_black_flag_base<Derived,BaseGenerator,T1,T2>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">with_red_black_flag_base</span></code></a>.
+        </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-2013 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="with_position_base_gen.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="with_rb_flag_gen.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/with_rb_flag_base.html
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/with_rb_flag_base.html	2013-07-07 14:52:52 EDT (Sun, 07 Jul 2013)	(r84977)
@@ -0,0 +1,633 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>with_red_black_flag_base<Derived,BaseGenerator,T1,T2></title>
+<link rel="stylesheet" href="http://www.boost.org/doc/libs/release/doc/src/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.77.1">
+<link rel="home" href="../../index.html" title="Chapter 1. tree_node 0.5">
+<link rel="up" href="../reference.html" title="Reference">
+<link rel="prev" href="with_rb_flag_gen.html" title="with_red_black_flag_gen<BaseGenerator>">
+<link rel="next" href="with_rb_flag_base_gen.html" title="with_red_black_flag_base_gen<BaseGenerator>">
+</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="with_rb_flag_gen.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="with_rb_flag_base_gen.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="tree_node.reference.with_rb_flag_base"></a><a class="link" href="with_rb_flag_base.html" title="with_red_black_flag_base<Derived,BaseGenerator,T1,T2>"><code class="computeroutput"><span class="identifier">with_red_black_flag_base</span><span class="special"><</span><span class="identifier">Derived</span><span class="special">,</span><span class="identifier">BaseGenerator</span><span class="special">,</span><span class="identifier">T1</span><span class="special">,</span><span class="identifier">T2</span><span class="special">></span></code> </a>
+</h3></div></div></div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.with_rb_flag_base.description"></a><a class="link" href="with_rb_flag_base.html#tree_node.reference.with_rb_flag_base.description" title="Description">Description</a>
+</h4></div></div></div>
+<p>
+          The <a class="link" href="with_rb_flag.html" title="with_red_black_flag<BaseGenerator,T1,T2>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">with_red_black_flag</span></code></a>
+          class template inherits its functionality from this class template. They
+          differ only with regard to template parameters: the <a class="link" href="with_rb_flag.html" title="with_red_black_flag<BaseGenerator,T1,T2>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">with_red_black_flag</span></code></a> class template
+          is meant to be used directly as a data structure, while <code class="computeroutput"><span class="identifier">with_red_black_flag_base</span></code>
+          is more suitable as a base class template from which other <a class="link" href="../concepts/tree_node.html" title="Tree Node"><span class="bold"><strong>Tree Node</strong></span></a> adaptor class templates can derive
+          via the <a class="link" href="with_rb_flag_base_gen.html" title="with_red_black_flag_base_gen<BaseGenerator>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">with_red_black_flag_base_gen</span></code></a>
+          <a class="link" href="../concepts/base_type_generator.html" title="Base Type Generator"><span class="bold"><strong>Base
+          Type Generator</strong></span></a>.
+        </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.with_rb_flag_base.definition"></a><a class="link" href="with_rb_flag_base.html#tree_node.reference.with_rb_flag_base.definition" title="Where defined">Where
+        defined</a>
+</h4></div></div></div>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span>boost/tree_node/with_red_black_flag.hpp<span class="special">></span>
+</pre>
+<p>
+          Forward-declared:
+        </p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span>boost/tree_node/with_red_black_flag_fwd.hpp<span class="special">></span>
+</pre>
+<p>
+          To register under Boost.Typeof:
+        </p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span>boost/typeof/boost/tree_node/with_red_black_flag.hpp<span class="special">></span>
+</pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.with_rb_flag_base.tpl_param"></a><a class="link" href="with_rb_flag_base.html#tree_node.reference.with_rb_flag_base.tpl_param" title="Template Parameters">Template
+        Parameters</a>
+</h4></div></div></div>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+                  <p>
+                    Parameter
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Description
+                  </p>
+                </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">Derived</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    The most descendant type that will inherit from this one.
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">BaseGenerator</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    The <a class="link" href="../concepts/base_type_generator.html" title="Base Type Generator"><span class="bold"><strong>Base Type Generator</strong></span></a> from whose
+                    return type <code class="computeroutput"><span class="identifier">with_red_black_flag_base</span></code>
+                    will inherit.
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">T1</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    The key type if <code class="computeroutput"><span class="identifier">T2</span></code>
+                    is not <code class="computeroutput"><span class="keyword">void</span></code>; the
+                    user data type otherwise.
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">T2</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    The user data type if not <code class="computeroutput"><span class="keyword">void</span></code>;
+                    ignored otherwise.
+                  </p>
+                </td>
+</tr>
+</tbody>
+</table></div>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.with_rb_flag_base.model_of"></a><a class="link" href="with_rb_flag_base.html#tree_node.reference.with_rb_flag_base.model_of" title="Model of">Model
+        of</a>
+</h4></div></div></div>
+<div class="itemizedlist"><ul class="itemizedlist" style="list-style-type: disc; ">
+<li class="listitem"><p>
+              <a class="link" href="../concepts/associative_tree_node.html" title="Associative Tree Node"><span class="bold"><strong>Associative Tree Node</strong></span></a> if <code class="computeroutput"><span class="identifier">T2</span></code> is not <code class="computeroutput"><span class="keyword">void</span></code>;
+              <a class="link" href="../concepts/non_assoc_tree_node.html" title="Non-Associative Tree Node"><span class="bold"><strong>Non-Associative
+              Tree Node</strong></span></a> otherwise
+            </p></li>
+<li class="listitem"><p>
+              <a class="link" href="../concepts/base_tree_node.html" title="Base Tree Node"><span class="bold"><strong>Base
+              Tree Node</strong></span></a>
+            </p></li>
+<li class="listitem"><p>
+              any other concept that the return type of <code class="computeroutput"><span class="identifier">BaseGenerator</span></code>
+              models
+            </p></li>
+</ul></div>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.with_rb_flag_base.public_bases"></a><a class="link" href="with_rb_flag_base.html#tree_node.reference.with_rb_flag_base.public_bases" title="Public Base Classes">Public
+        Base Classes</a>
+</h4></div></div></div>
+<pre class="programlisting"><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">eval_if</span><span class="special"><</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">is_void</span><span class="special"><</span><span class="identifier">T2</span><span class="special">></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">apply_wrap2</span><span class="special"><</span><span class="identifier">BaseGenerator</span><span class="special">,</span><span class="identifier">Derived</span><span class="special">,</span><span class="identifier">T1</span><span class="special">></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">apply_wrap3</span><span class="special"><</span><span class="identifier">BaseGenerator</span><span class="special">,</span><span class="identifier">Derived</span><span class="special">,</span><span class="identifier">T1</span><span class="special">,</span><span class="identifier">T2</span><span class="special">></span>
+<span class="special">>::</span><span class="identifier">type</span>
+</pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.with_rb_flag_base.members"></a><a class="link" href="with_rb_flag_base.html#tree_node.reference.with_rb_flag_base.members" title="Members">Members</a>
+</h4></div></div></div>
+<p>
+          In addition to those inherited from the return type of <code class="computeroutput"><span class="identifier">BaseGenerator</span></code>,
+          the following members are defined:
+        </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+                  <p>
+                    Name
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Definition
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Scope
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Description
+                  </p>
+                </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+                  <p>
+                    Emplacement constructor
+                  </p>
+                </td>
+<td>
+<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="special">...</span><span class="identifier">Args</span><span class="special">></span>
+<span class="keyword">explicit</span> <span class="identifier">with_red_black_flag_base</span><span class="special">(</span><span class="identifier">Args</span><span class="special">&&</span> <span class="special">...</span><span class="identifier">args</span><span class="special">);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">protected</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>
+                    Emplacement constructor with allocator
+                  </p>
+                </td>
+<td>
+<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="special">...</span><span class="identifier">Args</span><span class="special">></span>
+<span class="keyword">explicit</span> <span class="identifier">with_red_black_flag_base</span><span class="special">(</span>
+    <span class="special">::</span><span class="identifier">boost</span><span class="special">::</span><span class="identifier">container</span><span class="special">::</span><span class="identifier">allocator_arg_t</span>
+  <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">traits</span><span class="special">::</span><span class="identifier">allocator_reference</span> <span class="identifier">allocator</span>
+  <span class="special">,</span> <span class="identifier">Args</span><span class="special">&&</span> <span class="special">...</span><span class="identifier">args</span>
+<span class="special">);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">protected</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>
+                    Derived copy constructor
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">with_red_black_flag_base</span><span class="special">(</span><span class="identifier">Derived</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">copy</span><span class="special">);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">protected</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Defined by the <a class="link" href="../concepts/base_tree_node.html" title="Base Tree Node"><span class="bold"><strong>Base Tree Node</strong></span></a> concept.
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Derived copy constructor with allocator
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">with_red_black_flag_base</span><span class="special">(</span>
+    <span class="identifier">Derived</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">copy</span>
+  <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">traits</span><span class="special">::</span><span class="identifier">allocator_reference</span> <span class="identifier">allocator</span>
+<span class="special">);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">protected</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Defined by the <a class="link" href="../concepts/base_tree_node.html" title="Base Tree Node"><span class="bold"><strong>Base Tree Node</strong></span></a> concept.
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Derived move constructor
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">with_red_black_flag_base</span><span class="special">(</span><span class="identifier">Derived</span><span class="special">&&</span> <span class="identifier">source</span><span class="special">);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">protected</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Defined by the <a class="link" href="../concepts/base_tree_node.html" title="Base Tree Node"><span class="bold"><strong>Base Tree Node</strong></span></a> concept.
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Derived move constructor with allocator
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="identifier">with_red_black_flag_base</span><span class="special">(</span>
+    <span class="identifier">Derived</span><span class="special">&&</span> <span class="identifier">source</span>
+  <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">traits</span><span class="special">::</span><span class="identifier">allocator_reference</span> <span class="identifier">allocator</span>
+<span class="special">);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">protected</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Defined by the <a class="link" href="../concepts/base_tree_node.html" title="Base Tree Node"><span class="bold"><strong>Base Tree Node</strong></span></a> concept.
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Red flag query
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">bool</span> <span class="keyword">operator</span><span class="special">[](</span><span class="identifier">red_flag_key</span> <span class="keyword">const</span><span class="special">&)</span> <span class="keyword">const</span><span class="special">;</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">public</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Returns <code class="computeroutput"><span class="keyword">true</span></code> if
+                    the flag is set to red, <code class="computeroutput"><span class="keyword">false</span></code>
+                    if it is set to black.
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Black flag query
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">bool</span> <span class="keyword">operator</span><span class="special">[](</span><span class="identifier">black_flag_key</span> <span class="keyword">const</span><span class="special">&)</span> <span class="keyword">const</span><span class="special">;</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">public</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Returns <code class="computeroutput"><span class="keyword">true</span></code> if
+                    the flag is set to black, <code class="computeroutput"><span class="keyword">false</span></code>
+                    if it is set to red.
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Red flag setting
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">void</span> <span class="identifier">set_red_flag</span><span class="special">(</span><span class="keyword">bool</span> <span class="identifier">flag</span><span class="special">);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">public</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Sets the flag to red if the argument evaluates to <code class="computeroutput"><span class="keyword">true</span></code>; sets the flag to black if
+                    the argument evaluates to <code class="computeroutput"><span class="keyword">false</span></code>.
+                  </p>
+                </td>
+</tr>
+<tr>
+<td>
+                  <p>
+                    Black flag setting
+                  </p>
+                </td>
+<td>
+<pre xmlns:rev="http://www.cs.rpi.edu/~gregod/boost/tools/doc/revision" class="table-programlisting"><span class="keyword">void</span> <span class="identifier">set_black_flag</span><span class="special">(</span><span class="keyword">bool</span> <span class="identifier">flag</span><span class="special">);</span>
+</pre>
+                </td>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="keyword">public</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    Sets the flag to black if the argument evaluates to <code class="computeroutput"><span class="keyword">true</span></code>; sets the flag to red if
+                    the argument evaluates to <code class="computeroutput"><span class="keyword">false</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.with_rb_flag_base.non_members"></a><a class="link" href="with_rb_flag_base.html#tree_node.reference.with_rb_flag_base.non_members" title="Non-members">Non-members</a>
+</h4></div></div></div>
+<p>
+          In addition to those inherited from the return type of <code class="computeroutput"><span class="identifier">BaseGenerator</span></code>,
+          the following non-members are defined.
+        </p>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+                  <p>
+                    Name
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Definition
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Where defined
+                  </p>
+                </th>
+</tr></thead>
+<tbody>
+<tr>
+<td>
+                  <p>
+                    Red flag key-value read-only access
+                  </p>
+                </td>
+<td>
+<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">Derived</span>
+      <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">BaseGenerator</span>
+      <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">T1</span>
+      <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">T2</span>
+    <span class="special">></span>
+    <span class="keyword">bool</span>
+        <span class="identifier">get</span><span class="special">(</span>
+            <span class="identifier">with_red_black_flag_base</span><span class="special"><</span><span class="identifier">Derived</span><span class="special">,</span><span class="identifier">BaseGenerator</span><span class="special">,</span><span class="identifier">T1</span><span class="special">,</span><span class="identifier">T2</span><span class="special">></span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">node</span>
+          <span class="special">,</span> <span class="identifier">red_flag_key</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">key</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">Derived</span>
+      <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">BaseGenerator</span>
+      <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">T1</span>
+      <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">T2</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">std</span><span class="special">::</span><span class="identifier">tr1</span><span class="special">::</span><span class="identifier">is_same</span><span class="special"><</span><span class="identifier">Key</span><span class="special">,</span><span class="identifier">red_flag_key</span><span class="special">></span>
+      <span class="special">,</span> <span class="keyword">bool</span>
+    <span class="special">>::</span><span class="identifier">type</span>
+        <span class="identifier">get</span><span class="special">(</span><span class="identifier">with_red_black_flag_base</span><span class="special"><</span><span class="identifier">Derived</span><span class="special">,</span><span class="identifier">BaseGenerator</span><span class="special">,</span><span class="identifier">T1</span><span class="special">,</span><span class="identifier">T2</span><span class="special">></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>
+                </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>
+                    Black flag key-value read-only access
+                  </p>
+                </td>
+<td>
+<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">Derived</span>
+      <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">BaseGenerator</span>
+      <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">T1</span>
+      <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">T2</span>
+    <span class="special">></span>
+    <span class="keyword">bool</span>
+        <span class="identifier">get</span><span class="special">(</span>
+            <span class="identifier">with_red_black_flag_base</span><span class="special"><</span><span class="identifier">Derived</span><span class="special">,</span><span class="identifier">BaseGenerator</span><span class="special">,</span><span class="identifier">T1</span><span class="special">,</span><span class="identifier">T2</span><span class="special">></span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">node</span>
+          <span class="special">,</span> <span class="identifier">black_flag_key</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">key</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">Derived</span>
+      <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">BaseGenerator</span>
+      <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">T1</span>
+      <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">T2</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">std</span><span class="special">::</span><span class="identifier">tr1</span><span class="special">::</span><span class="identifier">is_same</span><span class="special"><</span><span class="identifier">Key</span><span class="special">,</span><span class="identifier">black_flag_key</span><span class="special">></span>
+      <span class="special">,</span> <span class="keyword">bool</span>
+    <span class="special">>::</span><span class="identifier">type</span>
+        <span class="identifier">get</span><span class="special">(</span><span class="identifier">with_red_black_flag_base</span><span class="special"><</span><span class="identifier">Derived</span><span class="special">,</span><span class="identifier">BaseGenerator</span><span class="special">,</span><span class="identifier">T1</span><span class="special">,</span><span class="identifier">T2</span><span class="special">></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>
+                </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>
+                    Red flag key-value modification
+                  </p>
+                </td>
+<td>
+<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">Derived</span>
+      <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">BaseGenerator</span>
+      <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">T1</span>
+      <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">T2</span>
+    <span class="special">></span>
+    <span class="keyword">void</span>
+        <span class="identifier">put</span><span class="special">(</span>
+            <span class="identifier">with_red_black_flag_base</span><span class="special"><</span><span class="identifier">Derived</span><span class="special">,</span><span class="identifier">BaseGenerator</span><span class="special">,</span><span class="identifier">T1</span><span class="special">,</span><span class="identifier">T2</span><span class="special">>&</span> <span class="identifier">node</span>
+          <span class="special">,</span> <span class="identifier">red_flag_key</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">key</span>
+          <span class="special">,</span> <span class="keyword">bool</span> <span class="identifier">value</span>
+        <span class="special">);</span>
+<span class="special">}}</span>  <span class="comment">// namespace boost::tree_node</span>
+</pre>
+                </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>
+                    Black flag key-value modification
+                  </p>
+                </td>
+<td>
+<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">Derived</span>
+      <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">BaseGenerator</span>
+      <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">T1</span>
+      <span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">T2</span>
+    <span class="special">></span>
+    <span class="keyword">void</span>
+        <span class="identifier">put</span><span class="special">(</span>
+            <span class="identifier">with_red_black_flag_base</span><span class="special"><</span><span class="identifier">Derived</span><span class="special">,</span><span class="identifier">BaseGenerator</span><span class="special">,</span><span class="identifier">T1</span><span class="special">,</span><span class="identifier">T2</span><span class="special">>&</span> <span class="identifier">node</span>
+          <span class="special">,</span> <span class="identifier">black_flag_key</span> <span class="keyword">const</span><span class="special">&</span> <span class="identifier">key</span>
+          <span class="special">,</span> <span class="keyword">bool</span> <span class="identifier">value</span>
+        <span class="special">);</span>
+<span class="special">}}</span>  <span class="comment">// namespace boost::tree_node</span>
+</pre>
+                </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>
+<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-2013 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="with_rb_flag_gen.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="with_rb_flag_base_gen.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/with_rb_flag_base_gen.html
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/with_rb_flag_base_gen.html	2013-07-07 14:52:52 EDT (Sun, 07 Jul 2013)	(r84977)
@@ -0,0 +1,185 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>with_red_black_flag_base_gen<BaseGenerator></title>
+<link rel="stylesheet" href="http://www.boost.org/doc/libs/release/doc/src/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.77.1">
+<link rel="home" href="../../index.html" title="Chapter 1. tree_node 0.5">
+<link rel="up" href="../reference.html" title="Reference">
+<link rel="prev" href="with_rb_flag_base.html" title="with_red_black_flag_base<Derived,BaseGenerator,T1,T2>">
+<link rel="next" href="tree_node_base.html" title="tree_node_base<Derived>">
+</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="with_rb_flag_base.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="tree_node_base.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="tree_node.reference.with_rb_flag_base_gen"></a><a class="link" href="with_rb_flag_base_gen.html" title="with_red_black_flag_base_gen<BaseGenerator>"><code class="computeroutput"><span class="identifier">with_red_black_flag_base_gen</span><span class="special"><</span><span class="identifier">BaseGenerator</span><span class="special">></span></code></a>
+</h3></div></div></div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.with_rb_flag_base_gen.synopsis"></a><a class="link" href="with_rb_flag_base_gen.html#tree_node.reference.with_rb_flag_base_gen.synopsis" title="Synopsis">Synopsis</a>
+</h4></div></div></div>
+<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">BaseGenerator</span><span class="special">></span>
+    <span class="keyword">struct</span> <span class="identifier">with_red_black_flag_base_gen</span>
+    <span class="special">{</span>
+        <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">Derived</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">T2</span> <span class="special">=</span> <span class="keyword">void</span><span class="special">></span>
+        <span class="keyword">struct</span> <span class="identifier">apply</span>
+        <span class="special">{</span>
+            <span class="keyword">typedef</span> <span class="identifier">with_red_black_flag_base</span><span class="special"><</span><span class="identifier">Derived</span><span class="special">,</span><span class="identifier">BaseGenerator</span><span class="special">,</span><span class="identifier">T1</span><span class="special">,</span><span class="identifier">T2</span><span class="special">></span> <span class="identifier">type</span><span class="special">;</span>
+        <span class="special">};</span>
+    <span class="special">};</span>
+<span class="special">}}</span>  <span class="comment">// namespace boost::tree_node</span>
+</pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.with_rb_flag_base_gen.description"></a><a class="link" href="with_rb_flag_base_gen.html#tree_node.reference.with_rb_flag_base_gen.description" title="Description">Description</a>
+</h4></div></div></div>
+<p>
+          Selector that can be passed on to generic functions and/or data structures
+          that use <a class="link" href="../concepts/base_tree_node.html" title="Base Tree Node"><span class="bold"><strong>Base
+          Tree Node</strong></span></a> models with constant-time access to red/black
+          node flags. The <code class="computeroutput"><span class="identifier">BaseGenerator</span></code>
+          template argument allows the same models to incorporate other data that
+          the same or other functions and/or data structures might need.
+        </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.with_rb_flag_base_gen.definition"></a><a class="link" href="with_rb_flag_base_gen.html#tree_node.reference.with_rb_flag_base_gen.definition" title="Where defined">Where
+        defined</a>
+</h4></div></div></div>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span>boost/tree_node/with_red_black_flag.hpp<span class="special">></span>
+</pre>
+<p>
+          To register under Boost.Typeof:
+        </p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span>boost/typeof/boost/tree_node/with_red_black_flag.hpp<span class="special">></span>
+</pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.with_rb_flag_base_gen.model_of"></a><a class="link" href="with_rb_flag_base_gen.html#tree_node.reference.with_rb_flag_base_gen.model_of" title="Model of">Model
+        of</a>
+</h4></div></div></div>
+<p>
+          <a class="link" href="../concepts/base_type_generator.html" title="Base Type Generator"><span class="bold"><strong>Base
+          Type Generator</strong></span></a>
+        </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.with_rb_flag_base_gen.tpl_param"></a><a class="link" href="with_rb_flag_base_gen.html#tree_node.reference.with_rb_flag_base_gen.tpl_param" title="Template Parameters">Template
+        Parameters</a>
+</h4></div></div></div>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+                  <p>
+                    Parameter
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Description
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Default
+                  </p>
+                </th>
+</tr></thead>
+<tbody><tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">BaseGenerator</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    The <a class="link" href="../concepts/base_type_generator.html" title="Base Type Generator"><span class="bold"><strong>Base Type Generator</strong></span></a> from whose
+                    return type <a class="link" href="with_rb_flag_base.html" title="with_red_black_flag_base<Derived,BaseGenerator,T1,T2>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">with_red_black_flag_base</span></code></a>
+                    will inherit.
+                  </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.with_rb_flag_base_gen.expressions"></a><a class="link" href="with_rb_flag_base_gen.html#tree_node.reference.with_rb_flag_base_gen.expressions" title="Expression Semantics">Expression
+        Semantics</a>
+</h4></div></div></div>
+<p>
+          Let <code class="computeroutput"><span class="identifier">Derived</span></code> be the type
+          that will inherit from <a class="link" href="with_rb_flag_base.html" title="with_red_black_flag_base<Derived,BaseGenerator,T1,T2>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">with_red_black_flag_base</span></code></a>.
+        </p>
+<p>
+          Let <code class="computeroutput"><span class="identifier">Key</span></code> be the key type.
+        </p>
+<p>
+          Let <code class="computeroutput"><span class="identifier">Data</span></code> be the user data
+          type.
+        </p>
+<p>
+          Let <code class="computeroutput"><span class="identifier">BaseGenerator</span></code> be a
+          valid <code class="computeroutput"><span class="identifier">with_red_black_flag_base_gen</span></code>
+          template argument.
+        </p>
+<pre class="programlisting"><span class="keyword">typedef</span> boost::mpl::apply_wrap3<span class="special"><</span>
+    <span class="identifier">with_red_black_flag_base_gen</span><span class="special"><</span><span class="identifier">BaseGenerator</span><span class="special">></span>
+  <span class="special">,</span> <span class="identifier">Derived</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">type</span> <span class="identifier">r</span><span class="special">;</span>
+</pre>
+<p>
+          <span class="bold"><strong>Return type:</strong></span> <code class="literal"><a class="link" href="with_rb_flag_base.html" title="with_red_black_flag_base<Derived,BaseGenerator,T1,T2>">tree_node::with_red_black_flag_base</a><Derived,BaseGenerator,Key,Data></code>
+        </p>
+<pre class="programlisting"><span class="keyword">typedef</span> boost::mpl::apply_wrap2<span class="special"><</span>
+    <span class="identifier">with_red_black_flag_base_gen</span><span class="special"><</span><span class="identifier">BaseGenerator</span><span class="special">></span>
+  <span class="special">,</span> <span class="identifier">Derived</span>
+  <span class="special">,</span> <span class="identifier">Data</span>
+<span class="special">>::</span><span class="identifier">type</span> <span class="identifier">r</span><span class="special">;</span>
+</pre>
+<p>
+          <span class="bold"><strong>Return type:</strong></span> <code class="literal"><a class="link" href="with_rb_flag_base.html" title="with_red_black_flag_base<Derived,BaseGenerator,T1,T2>">tree_node::with_red_black_flag_base</a><Derived,BaseGenerator,Data,void></code>
+        </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.with_rb_flag_base_gen.complexity"></a><a class="link" href="with_rb_flag_base_gen.html#tree_node.reference.with_rb_flag_base_gen.complexity" title="Complexity">Complexity</a>
+</h4></div></div></div>
+<p>
+          Compile time.
+        </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-2013 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="with_rb_flag_base.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="tree_node_base.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/with_rb_flag_gen.html
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ sandbox/tree_node/libs/tree_node/doc/html/tree_node/reference/with_rb_flag_gen.html	2013-07-07 14:52:52 EDT (Sun, 07 Jul 2013)	(r84977)
@@ -0,0 +1,179 @@
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=US-ASCII">
+<title>with_red_black_flag_gen<BaseGenerator></title>
+<link rel="stylesheet" href="http://www.boost.org/doc/libs/release/doc/src/boostbook.css" type="text/css">
+<meta name="generator" content="DocBook XSL Stylesheets V1.77.1">
+<link rel="home" href="../../index.html" title="Chapter 1. tree_node 0.5">
+<link rel="up" href="../reference.html" title="Reference">
+<link rel="prev" href="with_rb_flag.html" title="with_red_black_flag<BaseGenerator,T1,T2>">
+<link rel="next" href="with_rb_flag_base.html" title="with_red_black_flag_base<Derived,BaseGenerator,T1,T2>">
+</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="with_rb_flag.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="with_rb_flag_base.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/next.png" alt="Next"></a>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h3 class="title">
+<a name="tree_node.reference.with_rb_flag_gen"></a><a class="link" href="with_rb_flag_gen.html" title="with_red_black_flag_gen<BaseGenerator>"><code class="computeroutput"><span class="identifier">with_red_black_flag_gen</span><span class="special"><</span><span class="identifier">BaseGenerator</span><span class="special">></span></code></a>
+</h3></div></div></div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.with_rb_flag_gen.synopsis"></a><a class="link" href="with_rb_flag_gen.html#tree_node.reference.with_rb_flag_gen.synopsis" title="Synopsis">Synopsis</a>
+</h4></div></div></div>
+<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">BaseGenerator</span><span class="special">></span>
+    <span class="keyword">struct</span> <span class="identifier">with_red_black_flag_gen</span>
+    <span class="special">{</span>
+        <span class="keyword">template</span> <span class="special"><</span><span class="keyword">typename</span> <span class="identifier">T1</span><span class="special">,</span> <span class="keyword">typename</span> <span class="identifier">T2</span> <span class="special">=</span> <span class="keyword">void</span><span class="special">></span>
+        <span class="keyword">struct</span> <span class="identifier">apply</span>
+        <span class="special">{</span>
+            <span class="keyword">typedef</span> <span class="identifier">with_red_black_flag</span><span class="special"><</span><span class="identifier">BaseGenerator</span><span class="special">,</span><span class="identifier">T1</span><span class="special">,</span><span class="identifier">T2</span><span class="special">></span> <span class="identifier">type</span><span class="special">;</span>
+        <span class="special">};</span>
+    <span class="special">};</span>
+<span class="special">}}</span>  <span class="comment">// namespace boost::tree_node</span>
+</pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.with_rb_flag_gen.description"></a><a class="link" href="with_rb_flag_gen.html#tree_node.reference.with_rb_flag_gen.description" title="Description">Description</a>
+</h4></div></div></div>
+<p>
+          Selector that can be passed on to generic functions and/or data structures
+          that use <a class="link" href="../concepts/tree_node.html" title="Tree Node"><span class="bold"><strong>Tree
+          Node</strong></span></a> models with constant-time access to red/black node
+          flags. The <code class="computeroutput"><span class="identifier">BaseGenerator</span></code>
+          template argument allows the same models to incorporate other data that
+          the same or other functions and/or data structures might need.
+        </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.with_rb_flag_gen.definition"></a><a class="link" href="with_rb_flag_gen.html#tree_node.reference.with_rb_flag_gen.definition" title="Where defined">Where
+        defined</a>
+</h4></div></div></div>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span>boost/tree_node/with_red_black_flag.hpp<span class="special">></span>
+</pre>
+<p>
+          To register under Boost.Typeof:
+        </p>
+<pre class="programlisting"><span class="preprocessor">#include</span> <span class="special"><</span>boost/typeof/boost/tree_node/with_red_black_flag.hpp<span class="special">></span>
+</pre>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.with_rb_flag_gen.model_of"></a><a class="link" href="with_rb_flag_gen.html#tree_node.reference.with_rb_flag_gen.model_of" title="Model of">Model
+        of</a>
+</h4></div></div></div>
+<p>
+          <a class="link" href="../concepts/node_type_generator.html" title="Node Type Generator"><span class="bold"><strong>Node
+          Type Generator</strong></span></a>
+        </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.with_rb_flag_gen.tpl_param"></a><a class="link" href="with_rb_flag_gen.html#tree_node.reference.with_rb_flag_gen.tpl_param" title="Template Parameters">Template
+        Parameters</a>
+</h4></div></div></div>
+<div class="informaltable"><table class="table">
+<colgroup>
+<col>
+<col>
+<col>
+</colgroup>
+<thead><tr>
+<th>
+                  <p>
+                    Parameter
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Description
+                  </p>
+                </th>
+<th>
+                  <p>
+                    Default
+                  </p>
+                </th>
+</tr></thead>
+<tbody><tr>
+<td>
+                  <p>
+                    <code class="computeroutput"><span class="identifier">BaseGenerator</span></code>
+                  </p>
+                </td>
+<td>
+                  <p>
+                    The <a class="link" href="../concepts/base_type_generator.html" title="Base Type Generator"><span class="bold"><strong>Base Type Generator</strong></span></a> from whose
+                    return type <a class="link" href="with_rb_flag.html" title="with_red_black_flag<BaseGenerator,T1,T2>"><code class="computeroutput"><span class="identifier">tree_node</span><span class="special">::</span><span class="identifier">with_red_black_flag</span></code></a>
+                    will ultimately inherit.
+                  </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.with_rb_flag_gen.expressions"></a><a class="link" href="with_rb_flag_gen.html#tree_node.reference.with_rb_flag_gen.expressions" title="Expression Semantics">Expression
+        Semantics</a>
+</h4></div></div></div>
+<p>
+          Let <code class="computeroutput"><span class="identifier">Key</span></code> be the key type.
+        </p>
+<p>
+          Let <code class="computeroutput"><span class="identifier">Data</span></code> be the user data
+          type.
+        </p>
+<p>
+          Let <code class="computeroutput"><span class="identifier">BaseGenerator</span></code> be a
+          valid <code class="computeroutput"><span class="identifier">with_red_black_flag_gen</span></code>
+          template argument.
+        </p>
+<pre class="programlisting"><span class="keyword">typedef</span> boost::mpl::apply_wrap2<span class="special"><</span>
+    <span class="identifier">with_red_black_flag_gen</span><span class="special"><</span><span class="identifier">BaseGenerator</span><span class="special">></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">type</span> <span class="identifier">r</span><span class="special">;</span>
+</pre>
+<p>
+          <span class="bold"><strong>Return type:</strong></span> <code class="literal"><a class="link" href="with_rb_flag.html" title="with_red_black_flag<BaseGenerator,T1,T2>">tree_node::with_red_black_flag</a><BaseGenerator,Key,Data></code>
+        </p>
+<pre class="programlisting"><span class="keyword">typedef</span> boost::mpl::apply_wrap1<span class="special"><</span>
+    <span class="identifier">with_red_black_flag_gen</span><span class="special"><</span><span class="identifier">BaseGenerator</span><span class="special">></span>
+  <span class="special">,</span> <span class="identifier">Data</span>
+<span class="special">>::</span><span class="identifier">type</span> <span class="identifier">r</span><span class="special">;</span>
+</pre>
+<p>
+          <span class="bold"><strong>Return type:</strong></span> <code class="literal"><a class="link" href="with_rb_flag.html" title="with_red_black_flag<BaseGenerator,T1,T2>">tree_node::with_red_black_flag</a><BaseGenerator,Data,void></code>
+        </p>
+</div>
+<div class="section">
+<div class="titlepage"><div><div><h4 class="title">
+<a name="tree_node.reference.with_rb_flag_gen.complexity"></a><a class="link" href="with_rb_flag_gen.html#tree_node.reference.with_rb_flag_gen.complexity" title="Complexity">Complexity</a>
+</h4></div></div></div>
+<p>
+          Compile time.
+        </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-2013 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="with_rb_flag.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/prev.png" alt="Prev"></a><a accesskey="u" href="../reference.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/up.png" alt="Up"></a><a accesskey="h" href="../../index.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/home.png" alt="Home"></a><a accesskey="n" href="with_rb_flag_base.html"><img src="http://www.boost.org/doc/libs/release/doc/src/images/next.png" alt="Next"></a>
+</div>
+</body>
+</html>
Added: sandbox/tree_node/libs/tree_node/doc/ref_accumulation_key.qbk
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ sandbox/tree_node/libs/tree_node/doc/ref_accumulation_key.qbk	2013-07-07 14:52:52 EDT (Sun, 07 Jul 2013)	(r84977)
@@ -0,0 +1,86 @@
+[/=============================================================================
+    Copyright (C) 2013 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:accumulation_key `accumulation_key`]
+
+[section Synopsis]
+[reference__accumulation_key]
+[endsect]
+
+[section Description]
+Use this type to access statistical data stored in __Tree_Node__ objects of
+types ultimately inheriting from __tree_node_with_accumulation_base__.
+[endsect]
+
+[section:definition Where defined]
+``
+#include <__accumulation_key__header__>
+``
+
+To register under __Boost_Typeof__:
+
+``
+#include <__accumulation_key__typeof_header__>
+``
+[endsect]
+
+[section:tpl_param Template Parameters]
+[table
+    [[Parameter][Description][Requirements][Default]]
+    [
+        [`Key`]
+        [The type used to access the data to be accumulated.]
+        [
+            [^_result_of__has_key_<Node,Key>] must evaluate to __mpl_true__ for
+            some `Node node` storing the desired data.
+        ]
+        [__data_key__]
+    ]
+    [
+        [`Tag`]
+        [The type of the actual computation.]
+        [It must be a valid __Boost_Accumulators__ feature.]
+        [__accumulators_tag_sum__]
+    ]
+    [
+        [`IncludesAllDescendants`]
+        [
+            Configures the __tree_node_with_accumulation_base__ to include all
+            descendants of a target node for statistical evaluation if set to
+            __mpl_true__; otherwise, only the node's immediate children will be
+            included.
+        ]
+        [It must model the __Boolean_Integral_Constant__ concept.]
+        [__mpl_true__]
+    ]
+    [
+        [`IncludesRoot`]
+        [
+            Configures the __tree_node_with_accumulation_base__ to include a
+            target node along with its children/descendants for statistical
+            evaluation if set to __mpl_true__; otherwise, the node will be
+            excluded from evaluation.
+        ]
+        [It must model the __Boolean_Integral_Constant__ concept.]
+        [__mpl_true__]
+    ]
+    [
+        [`Value`]
+        [
+            The type of the accumulated result.  If left unspecified, the
+            __tree_node_with_accumulation_base__ will use the type of the data
+            to be accumulated.
+        ]
+        []
+        [`void`]
+    ]
+]
+[endsect]
+
+[endsect] [/ accumulation_key]
+
Added: sandbox/tree_node/libs/tree_node/doc/ref_advance_binary.qbk
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ sandbox/tree_node/libs/tree_node/doc/ref_advance_binary.qbk	2013-07-07 14:52:52 EDT (Sun, 07 Jul 2013)	(r84977)
@@ -0,0 +1,26 @@
+[/=============================================================================
+    Copyright (C) 2013 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:advance_binary `advance_binary()`]
+
+[section Synopsis]
+[reference__tree_node__advance_binary]
+[endsect]
+
+[section Description]
+TODO.
+[endsect]
+
+[section:definition Where defined]
+``
+#include <__advance_binary__header__>
+``
+[endsect]
+
+[endsect] [/ advance_binary]
+
Added: sandbox/tree_node/libs/tree_node/doc/ref_assoc_cont_derived_body.qbk
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ sandbox/tree_node/libs/tree_node/doc/ref_assoc_cont_derived_body.qbk	2013-07-07 14:52:52 EDT (Sun, 07 Jul 2013)	(r84977)
@@ -0,0 +1,47 @@
+[/=============================================================================
+    Copyright (C) 2013 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:assoc_cont_derived_body
+    `BOOST_TREE_NODE_ASSOCIATIVE_CONTAINER_DERIVED_BODY`
+]
+
+[section Synopsis]
+[reference__macro__associative_container_derived_body]
+[endsect]
+
+[section Description]
+Meant to be used in the `public` scope of an __Associative_Container__ model
+that inherits from another.
+
+This macro defines the type definitions; the default, copy, and move
+constructors; and the copy and move assignment operators necessary for the
+`Derived` class to model the __Default_Constructible__, __Copy_Constructible__,
+__Assignable__, __Movable__, and __Associative_Container__ concepts.  
+[endsect]
+
+[section Usage]
+``
+BOOST_TREE_NODE_ASSOCIATIVE_CONTAINER_DERIVED_BODY(Derived, Base)
+``
+[endsect]
+
+[section Arguments]
+[variablelist Notation
+    [[`Derived`][The name of the enclosing type.]]
+    [[`Base`][The name of the type from which `Derived` inherits.]]
+]
+[endsect]
+
+[section:definition Where defined]
+``
+#include <__preprocessor__header__>
+``
+[endsect]
+
+[endsect] [/ BOOST_TREE_NODE_ASSOCIATIVE_CONTAINER_DERIVED_BODY]
+
Added: sandbox/tree_node/libs/tree_node/doc/ref_assoc_node_base_gen.qbk
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ sandbox/tree_node/libs/tree_node/doc/ref_assoc_node_base_gen.qbk	2013-07-07 14:52:52 EDT (Sun, 07 Jul 2013)	(r84977)
@@ -0,0 +1,88 @@
+[/=============================================================================
+    Copyright (C) 2011-2013 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:assoc_node_base_gen `associative_node_base_gen<Selector>`]
+
+[section Synopsis]
+[reference__associative_node_base_gen]
+[endsect]
+
+[section Description]
+Minimalist selector that can be passed on to generic functions and/or
+data structures that use models of the __Associative_Tree_Node__ and
+__Base_Tree_Node__ concepts.
+[endsect]
+
+[section:definition Where defined]
+``
+#include <__associative_node__header__>
+``
+
+To register under __Boost_Typeof__:
+
+``
+#include <__associative_node__typeof_header__>
+``
+[endsect]
+
+[section:model_of Model of]
+__Base_Type_Generator__
+[endsect]
+
+[section:tpl_param Template Parameters]
+[table
+    [[Parameter][Description][Requirements][Default]]
+    [
+        [`Selector`]
+        [
+            The type that determines the child container type of
+            __associative_node_base__.
+        ]
+        [[itemized_list
+            [
+                [^_is_recursive_selector_<Selector>] must evaluate to
+                __mpl_true__.
+            ]
+            [
+                [^_is_associative_selector_<Selector>] must evaluate to
+                __mpl_true__.
+            ]
+        ]]
+        [__ptr_mapS__]
+    ]
+]
+[endsect]
+
+[section:expressions Expression Semantics]
+Let `Derived` be the type that will inherit from __associative_node_base__.
+
+Let `Key` be the key type.
+
+Let `Data` be the user data type.
+
+Let `Selector` be a valid `associative_node_base_gen` template argument.
+
+``
+    typedef _mpl_apply_wrap3_<
+        associative_node_base_gen<Selector>
+      , Derived
+      , Key
+      , Data
+    >::type r;
+``
+
+[*Return type:] [^_associative_node_base_<Derived,Key,Data,Selector>]
+
+[endsect]
+
+[section Complexity]
+Compile time.
+[endsect]
+
+[endsect] [/ associative_node_base_gen]
+
Added: sandbox/tree_node/libs/tree_node/doc/ref_associative_node.qbk
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ sandbox/tree_node/libs/tree_node/doc/ref_associative_node.qbk	2013-07-07 14:52:52 EDT (Sun, 07 Jul 2013)	(r84977)
@@ -0,0 +1,404 @@
+[/=============================================================================
+    Copyright (C) 2011-2013 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_node `associative_node<Key,Data,Selector>`]
+
+[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.  Objects of this type can be
+stored by value, and their children can be accessed by their associated keys
+for fast lookup.
+
+If the user data type models the __Fusion_Associative_Sequence__ concept, then
+each of the elements within can be also be obtained through key-value access
+and set through key-value modification as defined by the __Tree_Node__ concept;
+more specifically, for some object `node` of type `Node` such that `Node` is a
+template instantiation of `associative_node`, then for any type `Key` such that
+[^_fusion_has_key_<Key>(get<_data_key_>(node))] returns `true`, so does
+[^_has_key_<Key>(node)].
+[endsect]
+
+[section:definition Where defined]
+``
+#include <__associative_node__header__>
+``
+
+Forward-declared:
+
+``
+#include <__associative_node__forward_header__>
+``
+
+To register under __Boost_Typeof__:
+
+``
+#include <__associative_node__typeof_header__>
+``
+[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
+            `associative_node`.
+        ]
+        []
+        []
+    ]
+    [
+        [`Data`]
+        [The type of the user data to be stored in an `associative_node`.]
+        []
+        []
+    ]
+    [
+        [`Selector`]
+        [The type that determines the child container type.]
+        [[itemized_list
+            [
+                [^_is_recursive_selector_<Selector>] must evaluate to
+                __mpl_true__.
+            ]
+            [
+                [^_is_associative_selector_<Selector>] must evaluate to
+                __mpl_true__.
+            ]
+        ]]
+        [__ptr_mapS__]
+    ]
+]
+[endsect]
+
+[section:model_of Model of]
+[itemized_list
+    [__Associative_Tree_Node__]
+    [
+        __Reversible_Tree_Node__ if
+        [^_container_gen_<Selector,Key,associative_node>::type]
+        returns a __Reversible_Container__ model
+    ]
+    [__Default_Constructible__ if `Data` is __Default_Constructible__]
+    [__Copyable_Tree_Node__ if `Data` is __Copy_Constructible__]
+    [__Assignable__ if `Data` is __Copy_Constructible__ and __Movable__]
+    [__Movable_Tree_Node__ if `Data` is __Movable__]
+]
+[endsect]
+
+[section:public_bases Public Base Classes]
+[reference__associative_node__bases]
+[endsect]
+
+[section:members Public Members]
+[table
+    [[Name][Definition][Where defined]]
+    [
+        [Super type]
+        [[reference__associative_node__super_t]]
+        [__Tree_Node__]
+    ]
+    [
+        [
+            Key type, data type, iterator range type, immutable iterator
+            range type, allocator type, allocator reference type
+        ]
+        [[reference__associative_node__traits]]
+        [__Associative_Tree_Node__]
+    ]
+    [
+        [Pointer type]
+        [[reference__associative_node__pointer]]
+        [__Tree_Node__]
+    ]
+    [
+        [Pointer-to-const type]
+        [[reference__associative_node__const_pointer]]
+        [__Tree_Node__]
+    ]
+    [
+        [Iterator type]
+        [[reference__associative_node__iterator]]
+        [__Associative_Tree_Node__]
+    ]
+    [
+        [Immutable iterator type]
+        [[reference__associative_node__const_iterator]]
+        [__Associative_Tree_Node__]
+    ]
+    [
+        [Reverse iterator type]
+        [``
+            typedef typename children::reverse_iterator reverse_iterator;
+        ``]
+        [__Reversible_Tree_Node__]
+    ]
+    [
+        [Immutable reverse iterator type]
+        [``
+            typedef typename children::const_reverse_iterator
+                    const_reverse_iterator;
+        ``]
+        [__Reversible_Tree_Node__]
+    ]
+    [
+        [Emplacement constructor]
+        [[reference__associative_node__emplacement_ctor]]
+        [__Tree_Node__]
+    ]
+    [
+        [Emplacement constructor with allocator]
+        [[reference__associative_node__emplacement_ctor_w_allocator]]
+        [__Tree_Node__]
+    ]
+    [
+        [Copy constructor]
+        [``
+            associative_node(associative_node const& copy);
+        ``]
+        [__Copyable_Tree_Node__]
+    ]
+    [
+        [Copy constructor with allocator]
+        [``
+            associative_node(
+                associative_node const& copy
+              , typename traits::allocator_reference allocator
+            );
+        ``]
+        [__Copyable_Tree_Node__]
+    ]
+    [
+        [Move constructor]
+        [``
+            associative_node(associative_node&& source);
+        ``]
+        [__Movable_Tree_Node__]
+    ]
+    [
+        [Move constructor with allocator]
+        [``
+            associative_node(
+                associative_node&& source
+              , typename traits::allocator_reference allocator
+            );
+        ``]
+        [__Movable_Tree_Node__]
+    ]
+    [
+        [Copy assignment operator]
+        [``
+            associative_node& operator=(associative_node const&);
+        ``]
+        [__Assignable__]
+    ]
+    [
+        [Move assignment operator]
+        [``
+            associative_node& operator=(associative_node&&);
+        ``]
+        [__Movable__]
+    ]
+    [
+        [Parent read-only access]
+        [[reference__associative_node_base__get_parent_ptr__const]]
+        [__Tree_Node__]
+    ]
+    [
+        [Parent access]
+        [[reference__associative_node_base__get_parent_ptr]]
+        [__Tree_Node__]
+    ]
+    [
+        [Child creation]
+        [[reference__associative_node_base__emplace]]
+        [__Associative_Tree_Node__]
+    ]
+    [
+        [Child copy creation]
+        [``
+            iterator
+                insert(
+                    typename traits::key_type const& key
+                  , associative_node const& child
+                );
+        ``]
+        [__Associative_Tree_Node__]
+    ]
+    [
+        [Child move insertion]
+        [``
+            iterator
+                insert(
+                    typename traits::key_type const& key
+                  , associative_node&& child
+                );
+        ``]
+        [__Associative_Tree_Node__]
+    ]
+    [
+        [Children range begin read-only access]
+        [[reference__associative_node_base__cbegin]]
+        [__Tree_Node__]
+    ]
+    [
+        [Children range begin access]
+        [[reference__associative_node_base__begin]]
+        [__Tree_Node__]
+    ]
+    [
+        [Children range past-the-end read-only access]
+        [[reference__associative_node_base__cend]]
+        [__Tree_Node__]
+    ]
+    [
+        [Children range past-the-end access]
+        [[reference__associative_node_base__end]]
+        [__Tree_Node__]
+    ]
+    [
+        [Children reverse range begin read-only access]
+        [[reference__associative_node_base__crbegin]]
+        [__Reversible_Tree_Node__]
+    ]
+    [
+        [Children reverse range begin access]
+        [[reference__associative_node_base__rbegin]]
+        [__Reversible_Tree_Node__]
+    ]
+    [
+        [Children reverse range past-the-end read-only access]
+        [[reference__associative_node_base__crend]]
+        [__Reversible_Tree_Node__]
+    ]
+    [
+        [Children reverse range past-the-end access]
+        [[reference__associative_node_base__rend]]
+        [__Reversible_Tree_Node__]
+    ]
+    [
+        [Children range size query]
+        [[reference__associative_node_base__size]]
+        [__Tree_Node__]
+    ]
+    [
+        [Child read-only search]
+        [[reference__associative_node_base__find__const]]
+        [__Associative_Tree_Node__]
+    ]
+    [
+        [Child search]
+        [[reference__associative_node_base__find]]
+        [__Associative_Tree_Node__]
+    ]
+    [
+        [Child read-only search lower bound]
+        [[reference__associative_node_base__lower_bound__const]]
+        [__Associative_Tree_Node__]
+    ]
+    [
+        [Child search lower bound]
+        [[reference__associative_node_base__lower_bound]]
+        [__Associative_Tree_Node__]
+    ]
+    [
+        [Child read-only search upper bound]
+        [[reference__associative_node_base__upper_bound__const]]
+        [__Associative_Tree_Node__]
+    ]
+    [
+        [Child search upper bound]
+        [[reference__associative_node_base__upper_bound]]
+        [__Associative_Tree_Node__]
+    ]
+    [
+        [Child read-only search range]
+        [[reference__associative_node_base__equal_range__const]]
+        [__Associative_Tree_Node__]
+    ]
+    [
+        [Child search range]
+        [[reference__associative_node_base__equal_range]]
+        [__Associative_Tree_Node__]
+    ]
+    [
+        [Remove children]
+        [[reference__associative_node_base__erase]]
+        [__Associative_Tree_Node__]
+    ]
+    [
+        [Leaf node query]
+        [[reference__associative_node_base__empty]]
+        [__Tree_Node__]
+    ]
+    [
+        [Remove all children]
+        [[reference__associative_node_base__clear]]
+        [__Tree_Node__]
+    ]
+]
+[endsect] [/ Members]
+
+[section:non_members Non-Members]
+Same as those defined in __associative_node_base__.
+[endsect]
+
+[section Example]
+An __inverted_index__ maps words and numbers to the documents that contain
+them, making it a vital component for implementing search engines.  In turn,
+a __radix_tree__, designed to store strings as keys, is a good underlying data
+structure for an inverted index.
+
+For the sake of simplicity, the program will store its documents in a
+random-access container, so our inverted index implementation will refer
+to them by index.
+
+[test__inverted_index__type_definitions]
+
+Since a __radix_tree__ is a space-optimized __trie__ data structure, we can
+simplify things further by keeping the insertion and space-optimization
+routines as separate functions.  (An industrial-strength implementation will,
+of course, optimize for space during insertion.)  Thus, our inverted index will
+treat each word it encounters as a sequence of letters, initially storing them
+as keys to the next successive node or to the set of indices to the documents
+containing the word.  The documents are simply strings of space-delimited
+words, which can be extracted via __Boost_Tokenizer__.
+
+[test__inverted_index__insert]
+
+To optimize for space, in this case, means merging each single-child node with
+its offspring while concatenating the associated keys.  A breadth-first
+traversal will encounter the minimum number of nodes that need to be checked.
+
+[test__inverted_index__flatten]
+
+When searching for a particular word, our inverted index will, at each step,
+determine what portion of the specified word needs to be processed, then choose
+the branch whose key matches either that portion or a prefix substring.  If the
+key matches the remaining portion, then the function returns the indices to the
+containing documents.  If the key matches a prefix, then the suffix will be
+processed at the next step.  If no branch exists, then the word is not found.
+
+[test__inverted_index__find]
+
+In our program, the search space is a small array of documents, each of which
+the program will feed to the inverted index.
+
+[test__inverted_index__initialize]
+
+Then, for each unique word, the program will send the associated indices to
+standard output.
+
+[test__inverted_index__use]
+
+The complete program source can be found here: <__test_inverted_index_cpp__>
+[endsect]
+
+[endsect] [/ associative_node]
+
Added: sandbox/tree_node/libs/tree_node/doc/ref_associative_node_base.qbk
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ sandbox/tree_node/libs/tree_node/doc/ref_associative_node_base.qbk	2013-07-07 14:52:52 EDT (Sun, 07 Jul 2013)	(r84977)
@@ -0,0 +1,453 @@
+[/=============================================================================
+    Copyright (C) 2011-2013 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_node_base
+    `associative_node_base<Derived,Key,Data,Selector>`
+]
+
+[section Description]
+The __associative_node__ class template inherits its functionality from this
+class template.  They differ only with regard to template parameters: the
+__associative_node__ class template is meant to be used directly as a data
+structure, while `associative_node_base` is more suitable as a base class
+template from which __Tree_Node__ adaptor class templates can derive via the
+__associative_node_base_gen__ __Base_Type_Generator__.
+
+If the user data type models the __Fusion_Associative_Sequence__ concept, then
+each of the elements within can be also be obtained through key-value access
+and set through key-value modification as defined by the __Tree_Node__ concept;
+more specifically, for some object `node` of type `Node` such that `Node`
+inherits from `associative_node_base`, then for any type `Key` such that
+[^_fusion_has_key_<Key>(get<_data_key_>(node))] returns `true`, so does
+[^_has_key_<Key>(node)].
+[endsect]
+
+[section:definition Where defined]
+``
+#include <__associative_node__header__>
+``
+
+Forward-declared:
+
+``
+#include <__associative_node__forward_header__>
+``
+
+To register under __Boost_Typeof__:
+
+``
+#include <__associative_node__typeof_header__>
+``
+[endsect]
+
+[section:tpl_param Template Parameters]
+[table
+    [[Parameter][Description][Requirements]]
+    [
+        [`Derived`]
+        [The most descendant type that will inherit from this one.]
+        []
+    ]
+    [
+        [`Key`]
+        [The key type.]
+        []
+    ]
+    [
+        [`Data`]
+        [The user data type.]
+        []
+    ]
+    [
+        [`Selector`]
+        [The type that determines the child container type.]
+        [[itemized_list
+            [
+                [^_is_recursive_selector_<Selector>] must evaluate to
+                __mpl_true__.
+            ]
+            [
+                [^_is_associative_selector_<Selector>] must evaluate to
+                __mpl_true__.
+            ]
+        ]]
+    ]
+]
+[endsect]
+
+[section:model_of Model of]
+[itemized_list
+    [__Associative_Tree_Node__]
+    [
+        __Reversible_Tree_Node__ if
+        [^_container_gen_<Selector,Key,Derived>::type]
+        returns a __Reversible_Container__ model
+    ]
+    [__Base_Tree_Node__]
+    [__Default_Constructible__ if `Data` is __Default_Constructible__]
+]
+[endsect]
+
+[section:public_bases Public Base Classes]
+[reference__associative_node_base__bases]
+[endsect]
+
+[section:members Members]
+Given:
+[reference__associative_node_base__children]
+[table
+    [[Name][Definition][Scope][Where defined]]
+    [
+        [Super type]
+        [[reference__associative_node_base__super_t]]
+        [`public`]
+        [__Tree_Node__]
+    ]
+    [
+        [
+            Key type, data type, iterator range type, immutable iterator
+            range type, allocator type, allocator reference type
+        ]
+        [[reference__associative_node_base__traits]]
+        [`public`]
+        [__Associative_Tree_Node__]
+    ]
+    [
+        [Pointer type]
+        [[reference__associative_node_base__pointer]]
+        [`public`]
+        [__Tree_Node__]
+    ]
+    [
+        [Pointer-to-const type]
+        [[reference__associative_node_base__const_pointer]]
+        [`public`]
+        [__Tree_Node__]
+    ]
+    [
+        [Iterator type]
+        [[reference__associative_node_base__iterator]]
+        [`public`]
+        [__Associative_Tree_Node__]
+    ]
+    [
+        [Immutable iterator type]
+        [[reference__associative_node_base__const_iterator]]
+        [`public`]
+        [__Associative_Tree_Node__]
+    ]
+    [
+        [Reverse iterator type]
+        [``
+            typedef typename children::reverse_iterator reverse_iterator;
+        ``]
+        [`public`]
+        [__Reversible_Tree_Node__]
+    ]
+    [
+        [Immutable reverse iterator type]
+        [``
+            typedef typename children::const_reverse_iterator
+                    const_reverse_iterator;
+        ``]
+        [`public`]
+        [__Reversible_Tree_Node__]
+    ]
+    [
+        [Emplacement constructor]
+        [[reference__associative_node_base__emplacement_ctor]]
+        [`protected`]
+        [__Tree_Node__]
+    ]
+    [
+        [Emplacement constructor with allocator]
+        [[reference__associative_node_base__emplacement_ctor_w_allocator]]
+        [`protected`]
+        [__Tree_Node__]
+    ]
+    [
+        [Derived copy constructor]
+        [[reference__associative_node_base__derived_copy_ctor]]
+        [`protected`]
+        [__Base_Tree_Node__]
+    ]
+    [
+        [Derived copy constructor with allocator]
+        [[reference__associative_node_base__derived_copy_ctor_w_allocator]]
+        [`protected`]
+        [__Base_Tree_Node__]
+    ]
+    [
+        [Derived move constructor]
+        [``
+            associative_node_base(Derived&& source);
+        ``]
+        [`protected`]
+        [__Base_Tree_Node__]
+    ]
+    [
+        [Derived move constructor with allocator]
+        [``
+            associative_node_base(
+                Derived&& source
+              , typename traits::allocator_reference allocator
+            );
+        ``]
+        [`protected`]
+        [__Base_Tree_Node__]
+    ]
+    [
+        [Base descendant cloning]
+        [[reference__associative_node_base__clone_descendants]]
+        [`protected`]
+        [__Base_Tree_Node__]
+    ]
+    [
+        [Base descendant movement]
+        [``
+            void move_descendants(Derived&& source);
+        ``]
+        [`protected`]
+        [__Base_Tree_Node__]
+    ]
+    [
+        [Derived copy assignment]
+        [[reference__associative_node_base__copy_assign]]
+        [`protected`]
+        [__Base_Tree_Node__]
+    ]
+    [
+        [Derived move assignment]
+        [``
+            Derived& operator=(Derived&&);
+        ``]
+        [`protected`]
+        [__Base_Tree_Node__]
+    ]
+    [
+        [User data member read-only access]
+        [[reference__associative_node_base__key_value_operator__const]]
+        [`public`]
+        [`nary_node_base`]
+    ]
+    [
+        [User data member access]
+        [[reference__associative_node_base__key_value_operator]]
+        [`public`]
+        [`nary_node_base`]
+    ]
+    [
+        [Parent access]
+        [[reference__associative_node_base__get_parent_ptr__const]]
+        [`public`]
+        [__Tree_Node__]
+    ]
+    [
+        [Parent access]
+        [[reference__associative_node_base__get_parent_ptr]]
+        [`public`]
+        [__Tree_Node__]
+    ]
+    [
+        [Child creation]
+        [[reference__associative_node_base__emplace]]
+        [`public`]
+        [__Associative_Tree_Node__]
+    ]
+    [
+        [Child copy creation]
+        [[reference__associative_node_base__insert]]
+        [`public`]
+        [__Associative_Tree_Node__]
+    ]
+    [
+        [Child move insertion]
+        [``
+            iterator
+                insert(typename traits::key_type const& key, Derived&& child);
+        ``]
+        [`public`]
+        [__Associative_Tree_Node__]
+    ]
+    [
+        [Children range begin read-only access]
+        [[reference__associative_node_base__cbegin]]
+        [`public`]
+        [__Tree_Node__]
+    ]
+    [
+        [Children range begin access]
+        [[reference__associative_node_base__begin]]
+        [`public`]
+        [__Tree_Node__]
+    ]
+    [
+        [Children range past-the-end read-only access]
+        [[reference__associative_node_base__cend]]
+        [`public`]
+        [__Tree_Node__]
+    ]
+    [
+        [Children range past-the-end access]
+        [[reference__associative_node_base__end]]
+        [`public`]
+        [__Tree_Node__]
+    ]
+    [
+        [Children reverse range begin read-only access]
+        [[reference__associative_node_base__crbegin]]
+        [`public`]
+        [__Reversible_Tree_Node__]
+    ]
+    [
+        [Children reverse range begin access]
+        [[reference__associative_node_base__rbegin]]
+        [`public`]
+        [__Reversible_Tree_Node__]
+    ]
+    [
+        [Children reverse range past-the-end read-only access]
+        [[reference__associative_node_base__crend]]
+        [`public`]
+        [__Reversible_Tree_Node__]
+    ]
+    [
+        [Children reverse range past-the-end access]
+        [[reference__associative_node_base__rend]]
+        [`public`]
+        [__Reversible_Tree_Node__]
+    ]
+    [
+        [Children range size query]
+        [[reference__associative_node_base__size]]
+        [`public`]
+        [__Tree_Node__]
+    ]
+    [
+        [Child read-only search]
+        [[reference__associative_node_base__find__const]]
+        [`public`]
+        [__Associative_Tree_Node__]
+    ]
+    [
+        [Child search]
+        [[reference__associative_node_base__find]]
+        [`public`]
+        [__Associative_Tree_Node__]
+    ]
+    [
+        [Child read-only search lower bound]
+        [[reference__associative_node_base__lower_bound__const]]
+        [`public`]
+        [__Associative_Tree_Node__]
+    ]
+    [
+        [Child search lower bound]
+        [[reference__associative_node_base__lower_bound]]
+        [`public`]
+        [__Associative_Tree_Node__]
+    ]
+    [
+        [Child read-only search upper bound]
+        [[reference__associative_node_base__upper_bound__const]]
+        [`public`]
+        [__Associative_Tree_Node__]
+    ]
+    [
+        [Child search upper bound]
+        [[reference__associative_node_base__upper_bound]]
+        [`public`]
+        [__Associative_Tree_Node__]
+    ]
+    [
+        [Child read-only search range]
+        [[reference__associative_node_base__equal_range__const]]
+        [`public`]
+        [__Associative_Tree_Node__]
+    ]
+    [
+        [Child search range]
+        [[reference__associative_node_base__equal_range]]
+        [`public`]
+        [__Associative_Tree_Node__]
+    ]
+    [
+        [Remove children]
+        [[reference__associative_node_base__erase]]
+        [`public`]
+        [__Associative_Tree_Node__]
+    ]
+    [
+        [Leaf node query]
+        [[reference__associative_node_base__empty]]
+        [`public`]
+        [__Tree_Node__]
+    ]
+    [
+        [Remove all children]
+        [[reference__associative_node_base__clear]]
+        [`public`]
+        [__Tree_Node__]
+    ]
+    [
+        [Derived read-only access]
+        [``
+            const_pointer get_derived() const;
+        ``]
+        [`public`]
+        [__Base_Tree_Node__]
+    ]
+    [
+        [Derived access]
+        [``
+            pointer get_derived();
+        ``]
+        [`public`]
+        [__Base_Tree_Node__]
+    ]
+]
+[endsect] [/ Members]
+
+[section:non_members Non-Members]
+[table
+    [[Name][Definition][Where defined]]
+    [
+        [User data read-only access]
+        [[reference__associative_node_base__at_data_key__const]]
+        [__Tree_Node__]
+    ]
+    [
+        [User data access]
+        [[reference__associative_node_base__at_data_key]]
+        [__Tree_Node__]
+    ]
+    [
+        [User data modification]
+        [[reference__associative_node_base__put_data]]
+        [__Tree_Node__]
+    ]
+    [
+        [Key-value read-only access]
+        [[reference__associative_node_base__at_key__const]]
+        [__Tree_Node__]
+    ]
+    [
+        [Key-value access]
+        [[reference__associative_node_base__at_key]]
+        [__Tree_Node__]
+    ]
+    [
+        [Key-value modification]
+        [[reference__associative_node_base__put]]
+        [__Tree_Node__]
+    ]
+]
+[endsect] [/ Non-Members]
+
+[endsect] [/ associative_node_base]
+
Added: sandbox/tree_node/libs/tree_node/doc/ref_associative_node_gen.qbk
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ sandbox/tree_node/libs/tree_node/doc/ref_associative_node_gen.qbk	2013-07-07 14:52:52 EDT (Sun, 07 Jul 2013)	(r84977)
@@ -0,0 +1,86 @@
+[/=============================================================================
+    Copyright (C) 2011-2013 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_node_gen `associative_node_gen<Selector>`]
+
+[section Synopsis]
+[reference__associative_node_gen]
+[endsect]
+
+[section Description]
+Minimalist selector that can be passed on to generic functions and/or data
+structures that use __Associative_Tree_Node__ models.
+[endsect]
+
+[section:definition Where defined]
+``
+#include <__associative_node__header__>
+``
+
+To register under __Boost_Typeof__:
+
+``
+#include <__associative_node__typeof_header__>
+``
+[endsect]
+
+[section:model_of Model of]
+__Node_Type_Generator__
+[endsect]
+
+[section:tpl_param Template Parameters]
+[table
+    [[Parameter][Description][Requirements][Default]]
+    [
+        [`Selector`]
+        [
+            The type that determines the child container type of
+            __associative_node__.
+        ]
+        [[itemized_list
+            [
+                [^_is_recursive_selector_<Selector>] must evaluate to
+                __mpl_true__.
+            ]
+            [
+                [^_is_associative_selector_<Selector>] must evaluate to
+                __mpl_true__.
+            ]
+        ]]
+        [__ptr_mapS__]
+    ]
+]
+[endsect]
+
+[section:expressions Expression Semantics]
+Let `Derived` be the type that will inherit from __associative_node_base__.
+
+Let `Key` be the key type.
+
+Let `Data` be the user data type.
+
+Let `Selector` be a valid `associative_node_gen` template argument.
+
+``
+    typedef _mpl_apply_wrap2_<
+        associative_node_gen<Selector>
+      , Key
+      , Data
+    >::type r;
+``
+
+[*Return type:] [^_associative_node_<Key,Data,Selector>]
+
+[endsect]
+
+[section Complexity]
+Compile time.
+[endsect]
+
+[endsect] [/ associative_node_gen]
+
Added: sandbox/tree_node/libs/tree_node/doc/ref_at_key.qbk
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ sandbox/tree_node/libs/tree_node/doc/ref_at_key.qbk	2013-07-07 14:52:52 EDT (Sun, 07 Jul 2013)	(r84977)
@@ -0,0 +1,51 @@
+[/=============================================================================
+    Copyright (C) 2013 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:at_key `at_key<Key>`]
+
+[section:func_synopsis Function Object Synopsis]
+[reference__tree_node__at_key]
+[endsect]
+
+[section:func_description Function Object Description]
+The call operators of this __Unary_Function__ return the result of using `get`
+to access the value that the `node` argument associates with key type `Key`.
+
+A __Container__ model that stores instances of a __Tree_Node__ model (e.g.
+__binode_container__) can define its iterator types by using this type in
+conjunction with the __transform_iterator__ adaptor and the appropriate
+__Tree_Node_Iterator__ model (e.g. __in_order_iterator__), so that the
+container's iterator type is convertible to its `const` iterator type.
+[endsect]
+
+[section:result_of Return Type Metafunction Synopsis]
+[reference__tree_node__result_of__at_key]
+[endsect]
+
+[section:result_of_description Return Type Metafunction Description]
+Let `Node` be a (possibly `const`-qualified) __Tree_Node__ model.
+
+Let `Key` be a type for which [^_result_of__has_key_<Node,Key>] evaluates to
+__mpl_true__.
+
+``
+    typedef result_of::at_key<Node,Key>::type r;
+``
+
+[*Return type:] The type of the result of using `get` to access the value
+associated with key type `Key` in `Node`.
+[endsect]
+
+[section:definition Where defined]
+``
+#include <__at_key__header__>
+``
+[endsect]
+
+[endsect] [/ at_key]
+
Added: sandbox/tree_node/libs/tree_node/doc/ref_avl_balancer.qbk
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ sandbox/tree_node/libs/tree_node/doc/ref_avl_balancer.qbk	2013-07-07 14:52:52 EDT (Sun, 07 Jul 2013)	(r84977)
@@ -0,0 +1,32 @@
+[/=============================================================================
+    Copyright (C) 2013 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:avl_balancer `adelson_velskii_landis_balancer`]
+
+[section Synopsis]
+[reference__adelson_velskii_landis_balancer]
+[endsect]
+
+[section Description]
+TODO.
+[endsect]
+
+[section:definition Where defined]
+``
+#include <__avl_balancer__header__>
+``
+
+To register under __Boost_Typeof__:
+
+``
+#include <__avl_balancer__typeof_header__>
+``
+[endsect]
+
+[endsect] [/ avl_balancer]
+
Added: sandbox/tree_node/libs/tree_node/doc/ref_bin_descendant_at_index.qbk
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ sandbox/tree_node/libs/tree_node/doc/ref_bin_descendant_at_index.qbk	2013-07-07 14:52:52 EDT (Sun, 07 Jul 2013)	(r84977)
@@ -0,0 +1,26 @@
+[/=============================================================================
+    Copyright (C) 2013 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:binary_descendant_at_index `binary_descendant_at_index()`]
+
+[section Synopsis]
+[reference__tree_node__binary_descendant_at_index]
+[endsect]
+
+[section Description]
+TODO.
+[endsect]
+
+[section:definition Where defined]
+``
+#include <__binary_descendant_at_index__header__>
+``
+[endsect]
+
+[endsect] [/ binary_descendant_at_index]
+
Added: sandbox/tree_node/libs/tree_node/doc/ref_binary_descendant.qbk
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ sandbox/tree_node/libs/tree_node/doc/ref_binary_descendant.qbk	2013-07-07 14:52:52 EDT (Sun, 07 Jul 2013)	(r84977)
@@ -0,0 +1,26 @@
+[/=============================================================================
+    Copyright (C) 2013 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:binary_descendant `binary_descendant()`]
+
+[section Synopsis]
+[reference__tree_node__binary_descendant]
+[endsect]
+
+[section Description]
+TODO.
+[endsect]
+
+[section:definition Where defined]
+``
+#include <__binary_descendant__header__>
+``
+[endsect]
+
+[endsect] [/ binary_descendant]
+
Added: sandbox/tree_node/libs/tree_node/doc/ref_binary_index_of.qbk
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ sandbox/tree_node/libs/tree_node/doc/ref_binary_index_of.qbk	2013-07-07 14:52:52 EDT (Sun, 07 Jul 2013)	(r84977)
@@ -0,0 +1,26 @@
+[/=============================================================================
+    Copyright (C) 2013 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:binary_index_of `binary_index_of()`]
+
+[section Synopsis]
+[reference__tree_node__binary_index_of]
+[endsect]
+
+[section Description]
+TODO.
+[endsect]
+
+[section:definition Where defined]
+``
+#include <__binary_index_of__header__>
+``
+[endsect]
+
+[endsect] [/ binary_index_of]
+
Added: sandbox/tree_node/libs/tree_node/doc/ref_binary_lower_bound.qbk
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ sandbox/tree_node/libs/tree_node/doc/ref_binary_lower_bound.qbk	2013-07-07 14:52:52 EDT (Sun, 07 Jul 2013)	(r84977)
@@ -0,0 +1,26 @@
+[/=============================================================================
+    Copyright (C) 2013 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:binary_lower_bound `binary_lower_bound()`]
+
+[section Synopsis]
+[reference__tree_node__binary_lower_bound]
+[endsect]
+
+[section Description]
+TODO.
+[endsect]
+
+[section:definition Where defined]
+``
+#include <__binary_lower_bound__header__>
+``
+[endsect]
+
+[endsect] [/ binary_lower_bound]
+
Added: sandbox/tree_node/libs/tree_node/doc/ref_binary_node.qbk
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ sandbox/tree_node/libs/tree_node/doc/ref_binary_node.qbk	2013-07-07 14:52:52 EDT (Sun, 07 Jul 2013)	(r84977)
@@ -0,0 +1,388 @@
+[/=============================================================================
+    Copyright (C) 2011-2013 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:binary_node `binary_node<T,Size,AllocatorSelector>`]
+
+[section Description]
+This class template is suitable for classes or algorithms that require a
+binary tree node data structure.  Objects of this type can be stored by value.
+
+If the user data type models the __Fusion_Associative_Sequence__ concept, then
+each of the elements within can be also be obtained through key-value access
+and set through key-value modification as defined by the __Tree_Node__ concept;
+more specifically, for some object `node` of type `Node` such that `Node` is a
+template instantiation of `binary_node`, then for any type `Key` such that
+[^_fusion_has_key_<Key>(get<_data_key_>(node))] returns `true`, so does
+[^_has_key_<Key>(node)].
+[endsect]
+
+[section:definition Where defined]
+``
+#include <__binary_node__header__>
+``
+
+Forward-declared:
+
+``
+#include <__binary_node__forward_header__>
+``
+
+To register under __Boost_Typeof__:
+
+``
+#include <__binary_node__typeof_header__>
+``
+[endsect]
+
+[section:tpl_param Template Parameters]
+[table
+    [[Parameter][Description][Default]]
+    [
+        [`T`]
+        [The type of the user data to be stored in a `binary_node`.]
+        []
+    ]
+    [
+        [`Size`]
+        [The size type.]
+        [`uint32_t`]
+    ]
+    [
+        [`AllocatorSelector`]
+        [
+            A __Unary_Metafunction_Class__ that takes in `binary_node` and
+            returns either an allocator model or a mutable reference to one.
+        ]
+        [__std_allocator_selector__]
+    ]
+]
+[endsect]
+
+[section:model_of Model of]
+[itemized_list
+    [__Binary_Tree_Node__]
+    [__Default_Constructible__ if `T` is __Default_Constructible__]
+    [__Copyable_Tree_Node__ if `T` is __Copy_Constructible__]
+    [__Assignable__ if `T` is __Copy_Constructible__ and __Movable__]
+    [__Movable_Tree_Node__ if `T` is __Movable__]
+]
+[endsect]
+
+[section:public_bases Public Base Classes]
+[reference__binary_node__bases]
+[endsect]
+
+[section:members Public Members]
+[table
+    [[Name][Definition][Where defined]]
+    [
+        [Super type]
+        [[reference__binary_node__super_t]]
+        [__Tree_Node__]
+    ]
+    [
+        [Data type, allocator type, allocator reference type]
+        [[reference__binary_node__traits]]
+        [__Tree_Node__]
+    ]
+    [
+        [Pointer type]
+        [[reference__binary_node__pointer]]
+        [__Tree_Node__]
+    ]
+    [
+        [Pointer-to-const type]
+        [[reference__binary_node__const_pointer]]
+        [__Tree_Node__]
+    ]
+    [
+        [Iterator type]
+        [``
+            typedef implementation_defined iterator;
+        ``]
+        [__Non_Associative_Tree_Node__]
+    ]
+    [
+        [Immutable iterator type]
+        [``
+            typedef implementation_defined const_iterator;
+        ``]
+        [__Non_Associative_Tree_Node__]
+    ]
+    [
+        [Reverse iterator type]
+        [``
+            typedef implementation_defined reverse_iterator;
+        ``]
+        [__Reversible_Tree_Node__]
+    ]
+    [
+        [Immutable reverse iterator type]
+        [``
+            typedef implementation_defined const_reverse_iterator;
+        ``]
+        [__Reversible_Tree_Node__]
+    ]
+    [
+        [Size type]
+        [[reference__binary_node__size_type]]
+        [__Tree_Node__]
+    ]
+    [
+        [Emplacement constructor]
+        [[reference__binary_node__emplacement_ctor]]
+        [__Tree_Node__]
+    ]
+    [
+        [Emplacement constructor with allocator]
+        [[reference__binary_node__emplacement_ctor_w_allocator]]
+        [__Tree_Node__]
+    ]
+    [
+        [Copy constructor]
+        [``
+            binary_node(binary_node const& copy);
+        ``]
+        [__Copyable_Tree_Node__]
+    ]
+    [
+        [Copy constructor with allocator]
+        [``
+            binary_node(
+                binary_node const& copy
+              , typename traits::allocator_reference allocator
+            );
+        ``]
+        [__Copyable_Tree_Node__]
+    ]
+    [
+        [Move constructor]
+        [``
+            binary_node(binary_node&& source);
+        ``]
+        [__Movable_Tree_Node__]
+    ]
+    [
+        [Move constructor with allocator]
+        [``
+            binary_node(
+                binary_node&& source
+              , typename traits::allocator_reference allocator
+            );
+        ``]
+        [__Movable_Tree_Node__]
+    ]
+    [
+        [Copy assignment operator]
+        [``
+            binary_node& operator=(binary_node const&);
+        ``]
+        [__Assignable__]
+    ]
+    [
+        [Move assignment operator]
+        [``
+            binary_node& operator=(binary_node&&);
+        ``]
+        [__Movable__]
+    ]
+    [
+        [Parent read-only access]
+        [[reference__binary_node_base__get_parent_ptr__const]]
+        [__Tree_Node__]
+    ]
+    [
+        [Parent access]
+        [[reference__binary_node_base__get_parent_ptr]]
+        [__Tree_Node__]
+    ]
+    [
+        [Parent-of-left creation]
+        [[reference__binary_node_base__emplace_parent_of_left]]
+        [__Binary_Tree_Node__]
+    ]
+    [
+        [Parent-of-right creation]
+        [[reference__binary_node_base__emplace_parent_of_right]]
+        [__Binary_Tree_Node__]
+    ]
+    [
+        [Left child creation]
+        [[reference__binary_node_base__emplace_left]]
+        [__Binary_Tree_Node__]
+    ]
+    [
+        [Left child copy creation]
+        [``
+            iterator insert_left(binary_node const& child);
+        ``]
+        [__Binary_Tree_Node__]
+    ]
+    [
+        [Right child creation]
+        [[reference__binary_node_base__emplace_right]]
+        [__Binary_Tree_Node__]
+    ]
+    [
+        [Right child copy creation]
+        [``
+            iterator insert_right(binary_node const& child);
+        ``]
+        [__Binary_Tree_Node__]
+    ]
+    [
+        [Left child read-only access]
+        [[reference__binary_node_base__get_left_child_ptr__const]]
+        [__Binary_Tree_Node__]
+    ]
+    [
+        [Left child access]
+        [[reference__binary_node_base__get_left_child_ptr]]
+        [__Binary_Tree_Node__]
+    ]
+    [
+        [Right child read-only access]
+        [[reference__binary_node_base__get_right_child_ptr__const]]
+        [__Binary_Tree_Node__]
+    ]
+    [
+        [Right child access]
+        [[reference__binary_node_base__get_right_child_ptr]]
+        [__Binary_Tree_Node__]
+    ]
+    [
+        [Children range begin read-only access]
+        [[reference__binary_node_base__cbegin]]
+        [__Tree_Node__]
+    ]
+    [
+        [Children range begin access]
+        [[reference__binary_node_base__begin]]
+        [__Tree_Node__]
+    ]
+    [
+        [Children range past-the-end read-only access]
+        [[reference__binary_node_base__cend]]
+        [__Tree_Node__]
+    ]
+    [
+        [Children range past-the-end access]
+        [[reference__binary_node_base__end]]
+        [__Tree_Node__]
+    ]
+    [
+        [Children reverse range begin read-only access]
+        [[reference__binary_node_base__crbegin]]
+        [__Reversible_Tree_Node__]
+    ]
+    [
+        [Children reverse range begin access]
+        [[reference__binary_node_base__rbegin]]
+        [__Reversible_Tree_Node__]
+    ]
+    [
+        [Children reverse range past-the-end read-only access]
+        [[reference__binary_node_base__crend]]
+        [__Reversible_Tree_Node__]
+    ]
+    [
+        [Children reverse range past-the-end access]
+        [[reference__binary_node_base__rend]]
+        [__Reversible_Tree_Node__]
+    ]
+    [
+        [Children range size query]
+        [[reference__binary_node_base__size]]
+        [__Tree_Node__]
+    ]
+    [
+        [Rotate left]
+        [[reference__binary_node_base__rotate_left]]
+        [__Binary_Tree_Node__]
+    ]
+    [
+        [Rotate right]
+        [[reference__binary_node_base__rotate_right]]
+        [__Binary_Tree_Node__]
+    ]
+    [
+        [Remove left child]
+        [[reference__binary_node_base__erase_left]]
+        [__Binary_Tree_Node__]
+    ]
+    [
+        [Remove right child]
+        [[reference__binary_node_base__erase_right]]
+        [__Binary_Tree_Node__]
+    ]
+    [
+        [Leaf node query]
+        [[reference__binary_node_base__empty]]
+        [__Tree_Node__]
+    ]
+    [
+        [Remove all children]
+        [[reference__binary_node_base__clear]]
+        [__Tree_Node__]
+    ]
+]
+[endsect] [/ Members]
+
+[section:non_members Non-Members]
+Same as those defined in __binary_node_base__.
+[endsect]
+
+[section Example]
+A __Cartesian_tree__ is a binary tree derived from an input range such that
+each node corresponds to a value in the range and that the value associated
+with each non-root node is greater than that associated with its parent.  The
+construction procedure changes the root node as necessary to maintain the heap
+order invariant, so to keep things simple, the first node must be created the
+same way the succeeding placement insertion methods do: by using the node
+allocator type and __container_allocator_traits__.
+
+[impl__cartesian_sort__build_tree]
+
+A symmetric (in-order) traversal of the tree results in the original range:
+use the __make_transform_iterator__ function with the __at_key__ functor to
+transform the __in_order_iterator__ so that the __std_equal__ algorithm can
+compare the Cartesian tree with the input range.  Since the `Compare` type
+models the __Strict_Weak_Ordering__ concept, __make_equivalence_function__
+can use the `compare` functor to create a suitable comparator that
+__std_equal__ can use in turn.
+
+[impl__cartesian_sort__check_in_order_symmetry_with_input_range]
+
+The __std_heap_selector__ type induces the breadth-first iterator to replace
+the usual FIFO queue with a priority queue, resulting in a sorted range.  The
+__tree_node_compareS__ type enables the priority queue to store pointers or
+iterators to tree nodes while prioritizing according to their data.
+
+[impl__cartesian_sort__breadth_first_descendant_iterate_with_priority]
+
+Using the node allocator type and __container_allocator_traits__ to destroy the
+root node and reclaim its memory will recursively destroy the descendant nodes
+and reclaim their memory as well.
+
+[impl__cartesian_sort__cleanup]
+
+Our sorting function has the advantage of not requiring the iterator type of
+the input range to model the __Random_Access_Iterator__ concept or even the
+__Bidirectional_Iterator__ concept, allowing it to work for a larger variety
+of range types.
+
+The complete program source can be found here: <__cartesian_sort__header__>
+and <__test_cartesian_sort_cpp__>
+[endsect]
+
+[section Test]
+<__test_binary_node_cpp__>
+[endsect]
+
+[endsect] [/ binary_node]
+
Added: sandbox/tree_node/libs/tree_node/doc/ref_binary_node_base.qbk
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ sandbox/tree_node/libs/tree_node/doc/ref_binary_node_base.qbk	2013-07-07 14:52:52 EDT (Sun, 07 Jul 2013)	(r84977)
@@ -0,0 +1,453 @@
+[/=============================================================================
+    Copyright (C) 2011-2013 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:binary_node_base `binary_node_base<Derived,T,Selector>`]
+
+[section Description]
+The __binary_node__ class template inherits its functionality from this class
+template.  They differ only with regard to template parameters: the
+__binary_node__ class template is meant to be used directly as a data
+structure, while `binary_node_base` is more suitable as a base class template
+from which __Tree_Node__ adaptor class templates can derive via the
+__binary_node_base_gen__ __Base_Type_Generator__.
+
+If the user data type models the __Fusion_Associative_Sequence__ concept, then
+each of the elements within can be also be obtained through key-value access
+and set through key-value modification as defined by the __Tree_Node__ concept;
+more specifically, for some object `node` of type `Node` such that `Node`
+inherits from `binary_node_base`, then for any type `Key` such that
+[^_fusion_has_key_<Key>(get<_data_key_>(node))] returns `true`, so does
+[^_has_key_<Key>(node)].
+[endsect]
+
+[section:definition Where defined]
+``
+#include <__binary_node__header__>
+``
+
+Forward-declared:
+
+``
+#include <__binary_node__forward_header__>
+``
+
+To register under __Boost_Typeof__:
+
+``
+#include <__binary_node__typeof_header__>
+``
+[endsect]
+
+[section:tpl_param Template Parameters]
+[table
+    [[Parameter][Description][Requirements]]
+    [
+        [`Derived`]
+        [The most descendant type that will inherit from this one.]
+        []
+    ]
+    [
+        [`T`]
+        [The user data type.]
+        []
+    ]
+    [
+        [`Size`]
+        [The size type.]
+        []
+    ]
+    [
+        [`Selector`]
+        [
+            A __Unary_Metafunction_Class__ that takes in `binary_node` and
+            returns either an allocator model or a mutable reference to one.
+        ]
+        []
+    ]
+]
+[endsect]
+
+[section:model_of Model of]
+[itemized_list
+    [__Binary_Tree_Node__]
+    [__Base_Tree_Node__]
+    [__Default_Constructible__ if `T` is __Default_Constructible__]
+]
+[endsect]
+
+[section:public_bases Public Base Classes]
+[reference__binary_node_base__bases]
+[endsect]
+
+[section:members Members]
+[table
+    [[Name][Definition][Scope][Where defined]]
+    [
+        [Super type]
+        [[reference__binary_node_base__super_t]]
+        [`public`]
+        [__Tree_Node__]
+    ]
+    [
+        [Data type, allocator type, allocator reference type]
+        [[reference__binary_node_base__traits]]
+        [`public`]
+        [__Tree_Node__]
+    ]
+    [
+        [Pointer type]
+        [[reference__binary_node_base__pointer]]
+        [`public`]
+        [__Tree_Node__]
+    ]
+    [
+        [Pointer-to-const type]
+        [[reference__binary_node_base__const_pointer]]
+        [`public`]
+        [__Tree_Node__]
+    ]
+    [
+        [Iterator type]
+        [``
+            typedef implementation_defined iterator;
+        ``]
+        [`public`]
+        [__Non_Associative_Tree_Node__]
+    ]
+    [
+        [Immutable iterator type]
+        [``
+            typedef implementation_defined const_iterator;
+        ``]
+        [`public`]
+        [__Non_Associative_Tree_Node__]
+    ]
+    [
+        [Reverse iterator type]
+        [``
+            typedef implementation_defined reverse_iterator;
+        ``]
+        [`public`]
+        [__Reversible_Tree_Node__]
+    ]
+    [
+        [Immutable reverse iterator type]
+        [``
+            typedef implementation_defined const_reverse_iterator;
+        ``]
+        [`public`]
+        [__Reversible_Tree_Node__]
+    ]
+    [
+        [Size type]
+        [[reference__binary_node_base__size_type]]
+        [`public`]
+        [__Tree_Node__]
+    ]
+    [
+        [Emplacement constructor]
+        [[reference__binary_node_base__emplacement_ctor]]
+        [`protected`]
+        [__Tree_Node__]
+    ]
+    [
+        [Emplacement constructor with allocator]
+        [[reference__binary_node_base__emplacement_ctor_w_allocator]]
+        [`protected`]
+        [__Tree_Node__]
+    ]
+    [
+        [Derived copy constructor]
+        [[reference__binary_node_base__derived_copy_ctor]]
+        [`protected`]
+        [__Base_Tree_Node__]
+    ]
+    [
+        [Derived copy constructor with allocator]
+        [[reference__binary_node_base__derived_copy_ctor_w_allocator]]
+        [`protected`]
+        [__Base_Tree_Node__]
+    ]
+    [
+        [Derived move constructor]
+        [``
+            binary_node_base(Derived&& source);
+        ``]
+        [`protected`]
+        [__Base_Tree_Node__]
+    ]
+    [
+        [Derived move constructor with allocator]
+        [``
+            binary_node_base(
+                Derived&& source
+              , typename traits::allocator_reference allocator
+            );
+        ``]
+        [`protected`]
+        [__Base_Tree_Node__]
+    ]
+    [
+        [Base descendant cloning]
+        [[reference__binary_node_base__clone_descendants]]
+        [`protected`]
+        [__Base_Tree_Node__]
+    ]
+    [
+        [Base descendant movement]
+        [``
+            void move_descendants(Derived&& source);
+        ``]
+        [`protected`]
+        [__Base_Tree_Node__]
+    ]
+    [
+        [Derived copy assignment]
+        [[reference__binary_node_base__copy_assign]]
+        [`protected`]
+        [__Base_Tree_Node__]
+    ]
+    [
+        [Derived move assignment]
+        [``
+            void move_assign(Derived&& source);
+        ``]
+        [`protected`]
+        [__Base_Tree_Node__]
+    ]
+    [
+        [User data member read-only access]
+        [[reference__binary_node_base__key_value_operator__const]]
+        [`public`]
+        [`binary_node_base`]
+    ]
+    [
+        [User data member access]
+        [[reference__binary_node_base__key_value_operator]]
+        [`public`]
+        [`binary_node_base`]
+    ]
+    [
+        [Parent read-only access]
+        [[reference__binary_node_base__get_parent_ptr__const]]
+        [`public`]
+        [__Tree_Node__]
+    ]
+    [
+        [Parent access]
+        [[reference__binary_node_base__get_parent_ptr]]
+        [`public`]
+        [__Tree_Node__]
+    ]
+    [
+        [Parent-of-left creation]
+        [[reference__binary_node_base__emplace_parent_of_left]]
+        [`public`]
+        [__Binary_Tree_Node__]
+    ]
+    [
+        [Parent-of-right creation]
+        [[reference__binary_node_base__emplace_parent_of_right]]
+        [`public`]
+        [__Binary_Tree_Node__]
+    ]
+    [
+        [Left child creation]
+        [[reference__binary_node_base__emplace_left]]
+        [`public`]
+        [__Binary_Tree_Node__]
+    ]
+    [
+        [Left child copy creation]
+        [[reference__binary_node_base__insert_left]]
+        [`public`]
+        [__Binary_Tree_Node__]
+    ]
+    [
+        [Right child creation]
+        [[reference__binary_node_base__emplace_right]]
+        [`public`]
+        [__Binary_Tree_Node__]
+    ]
+    [
+        [Right child copy creation]
+        [[reference__binary_node_base__insert_right]]
+        [`public`]
+        [__Binary_Tree_Node__]
+    ]
+    [
+        [Left child read-only access]
+        [[reference__binary_node_base__get_left_child_ptr__const]]
+        [`public`]
+        [__Binary_Tree_Node__]
+    ]
+    [
+        [Left child access]
+        [[reference__binary_node_base__get_left_child_ptr]]
+        [`public`]
+        [__Binary_Tree_Node__]
+    ]
+    [
+        [Right child read-only access]
+        [[reference__binary_node_base__get_right_child_ptr__const]]
+        [`public`]
+        [__Binary_Tree_Node__]
+    ]
+    [
+        [Right child access]
+        [[reference__binary_node_base__get_right_child_ptr]]
+        [`public`]
+        [__Binary_Tree_Node__]
+    ]
+    [
+        [Children range begin read-only access]
+        [[reference__binary_node_base__cbegin]]
+        [`public`]
+        [__Tree_Node__]
+    ]
+    [
+        [Children range begin access]
+        [[reference__binary_node_base__begin]]
+        [`public`]
+        [__Tree_Node__]
+    ]
+    [
+        [Children range past-the-end read-only access]
+        [[reference__binary_node_base__cend]]
+        [`public`]
+        [__Tree_Node__]
+    ]
+    [
+        [Children range past-the-end access]
+        [[reference__binary_node_base__end]]
+        [`public`]
+        [__Tree_Node__]
+    ]
+    [
+        [Children reverse range begin read-only access]
+        [[reference__binary_node_base__crbegin]]
+        [`public`]
+        [__Reversible_Tree_Node__]
+    ]
+    [
+        [Children reverse range begin access]
+        [[reference__binary_node_base__rbegin]]
+        [`public`]
+        [__Reversible_Tree_Node__]
+    ]
+    [
+        [Children reverse range past-the-end read-only access]
+        [[reference__binary_node_base__crend]]
+        [`public`]
+        [__Reversible_Tree_Node__]
+    ]
+    [
+        [Children reverse range past-the-end access]
+        [[reference__binary_node_base__rend]]
+        [`public`]
+        [__Reversible_Tree_Node__]
+    ]
+    [
+        [Children range size query]
+        [[reference__binary_node_base__size]]
+        [`public`]
+        [__Tree_Node__]
+    ]
+    [
+        [Rotate left]
+        [[reference__binary_node_base__rotate_left]]
+        [`public`]
+        [__Binary_Tree_Node__]
+    ]
+    [
+        [Rotate right]
+        [[reference__binary_node_base__rotate_right]]
+        [`public`]
+        [__Binary_Tree_Node__]
+    ]
+    [
+        [Remove left child]
+        [[reference__binary_node_base__erase_left]]
+        [`public`]
+        [__Binary_Tree_Node__]
+    ]
+    [
+        [Remove right child]
+        [[reference__binary_node_base__erase_right]]
+        [`public`]
+        [__Binary_Tree_Node__]
+    ]
+    [
+        [Leaf node query]
+        [[reference__binary_node_base__empty]]
+        [`public`]
+        [__Tree_Node__]
+    ]
+    [
+        [Remove all children]
+        [[reference__binary_node_base__clear]]
+        [`public`]
+        [__Tree_Node__]
+    ]
+    [
+        [Derived read-only access]
+        [``
+            const_pointer get_derived() const;
+        ``]
+        [`public`]
+        [__Base_Tree_Node__]
+    ]
+    [
+        [Derived access]
+        [``
+            pointer get_derived();
+        ``]
+        [`public`]
+        [__Base_Tree_Node__]
+    ]
+]
+[endsect] [/ Members]
+
+[section:non_members Non-Members]
+[table
+    [[Name][Definition][Where defined]]
+    [
+        [User data read-only access]
+        [[reference__binary_node_base__at_data_key__const]]
+        [__Tree_Node__]
+    ]
+    [
+        [User data access]
+        [[reference__binary_node_base__at_data_key]]
+        [__Tree_Node__]
+    ]
+    [
+        [User data modification]
+        [[reference__binary_node_base__put_data]]
+        [__Tree_Node__]
+    ]
+    [
+        [Key-value read-only access]
+        [[reference__binary_node_base__at_key__const]]
+        [__Tree_Node__]
+    ]
+    [
+        [Key-value access]
+        [[reference__binary_node_base__at_key]]
+        [__Tree_Node__]
+    ]
+    [
+        [Key-value modification]
+        [[reference__binary_node_base__put]]
+        [__Tree_Node__]
+    ]
+]
+[endsect] [/ Non-Members]
+
+[endsect] [/ binary_node_base]
+
Added: sandbox/tree_node/libs/tree_node/doc/ref_binary_node_base_gen.qbk
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ sandbox/tree_node/libs/tree_node/doc/ref_binary_node_base_gen.qbk	2013-07-07 14:52:52 EDT (Sun, 07 Jul 2013)	(r84977)
@@ -0,0 +1,88 @@
+[/=============================================================================
+    Copyright (C) 2011-2013 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:binary_node_base_gen `binary_node_base_gen<Size,AllocatorSelector>`]
+
+[section Synopsis]
+[reference__binary_node_base_gen]
+[endsect]
+
+[section Description]
+Minimalist selector that can be passed on to generic functions and/or data
+structures that use models of the __Binary_Tree_Node__ and __Base_Tree_Node__
+concepts.
+[endsect]
+
+[section:definition Where defined]
+``
+#include <__binary_node__header__>
+``
+
+To register under __Boost_Typeof__:
+
+``
+#include <__binary_node__typeof_header__>
+``
+[endsect]
+
+[section:tpl_param Template Parameters]
+[table
+    [[Parameter][Description][Default]]
+    [
+        [`Size`]
+        [The size type of the return type of this metafunction class.]
+        [`uint32_t`]
+    ]
+    [
+        [`AllocatorSelector`]
+        [
+            A __Unary_Metafunction_Class__ that takes in the return type of
+            this metafunction class and returns either an allocator model or a
+            mutable reference to one.
+        ]
+        [__std_allocator_selector__]
+    ]
+]
+[endsect]
+
+[section:model_of Model of]
+__Base_Type_Generator__
+[endsect]
+
+[section:expressions Expression Semantics]
+Let `Derived` be the type that will inherit from __binary_node_base__.
+
+Let `T` be the user data type.
+
+``
+    typedef _mpl_apply_wrap2_<
+                binary_node_base_gen<Size,AllocatorSelector>
+              , Derived
+              , T
+            >::type
+            r;
+``
+
+[*Return type:]
+``
+_binary_node_base_<
+    Derived
+  , T
+  , Size
+  , _mpl_apply_wrap1_<AllocatorSelector,Derived>::type
+>
+``
+
+[endsect]
+
+[section Complexity]
+Compile time.
+[endsect]
+
+[endsect] [/ binary_node_base_gen]
+
Added: sandbox/tree_node/libs/tree_node/doc/ref_binary_node_gen.qbk
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ sandbox/tree_node/libs/tree_node/doc/ref_binary_node_gen.qbk	2013-07-07 14:52:52 EDT (Sun, 07 Jul 2013)	(r84977)
@@ -0,0 +1,73 @@
+[/=============================================================================
+    Copyright (C) 2011-2013 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:binary_node_gen `binary_node_gen<Size,AllocatorSelector>`]
+
+[section Synopsis]
+[reference__binary_node_gen]
+[endsect]
+
+[section Description]
+Minimalist selector that can be passed on to generic functions and/or data
+structures that use __Binary_Tree_Node__ models.
+[endsect]
+
+[section:definition Where defined]
+``
+#include <__binary_node__header__>
+``
+
+To register under __Boost_Typeof__:
+
+``
+#include <__binary_node__typeof_header__>
+``
+[endsect]
+
+[section:tpl_param Template Parameters]
+[table
+    [[Parameter][Description][Default]]
+    [
+        [`Size`]
+        [The size type of the return type of this metafunction class.]
+        [`uint32_t`]
+    ]
+    [
+        [`AllocatorSelector`]
+        [
+            A __Unary_Metafunction_Class__ that takes in the return type of
+            this metafunction class and returns either an allocator model or a
+            mutable reference to one.
+        ]
+        [__std_allocator_selector__]
+    ]
+]
+[endsect]
+
+[section:model_of Model of]
+__Node_Type_Generator__
+[endsect]
+
+[section:expressions Expression Semantics]
+Let `T` be the user data type.
+
+``
+    typedef _mpl_apply_wrap1_<binary_node_gen<Size,AllocatorSelector>,T>::type
+            r;
+``
+
+[*Return type:] [^_binary_node_<T,Size,AllocatorSelector>]
+
+[endsect]
+
+[section Complexity]
+Compile time.
+[endsect]
+
+[endsect] [/ binary_node_gen]
+
Added: sandbox/tree_node/libs/tree_node/doc/ref_binary_upper_bound.qbk
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ sandbox/tree_node/libs/tree_node/doc/ref_binary_upper_bound.qbk	2013-07-07 14:52:52 EDT (Sun, 07 Jul 2013)	(r84977)
@@ -0,0 +1,26 @@
+[/=============================================================================
+    Copyright (C) 2013 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:binary_upper_bound `binary_upper_bound()`]
+
+[section Synopsis]
+[reference__tree_node__binary_upper_bound]
+[endsect]
+
+[section Description]
+TODO.
+[endsect]
+
+[section:definition Where defined]
+``
+#include <__binary_upper_bound__header__>
+``
+[endsect]
+
+[endsect] [/ binary_upper_bound]
+
Added: sandbox/tree_node/libs/tree_node/doc/ref_binode_assoc_container.qbk
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ sandbox/tree_node/libs/tree_node/doc/ref_binode_assoc_container.qbk	2013-07-07 14:52:52 EDT (Sun, 07 Jul 2013)	(r84977)
@@ -0,0 +1,388 @@
+[/=============================================================================
+    Copyright (C) 2013 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:binode_assoc_container
+    `binode_associative_container<
+        NodeGenerator
+      , T1
+      , T2
+      , IsMultipleAssociative
+      , CompareSelector
+      , Balancer
+    >`
+]
+
+[section Description]
+TODO.
+[endsect]
+
+[section:definition Where defined]
+``
+#include <__binode_associative_container__header__>
+``
+
+Forward-declared:
+
+``
+#include <__binode_associative_container__forward_header__>
+``
+
+To register under __Boost_Typeof__:
+
+``
+#include <__binode_associative_container__typeof_header__>
+``
+[endsect]
+
+[section:tpl_param Template Parameters]
+[table
+    [[Parameter][Description][Default]]
+    [
+        [`NodeGenerator`]
+        [
+            A __Node_Type_Generator__ that takes in the value type and returns
+            a __Binary_Tree_Node__ model.
+        ]
+        []
+    ]
+    [
+        [`T1`]
+        [The key type.]
+        []
+    ]
+    [
+        [`T2`]
+        [The mapped type; ignored if `void`.]
+        []
+    ]
+    [
+        [`IsMultipleAssociative`]
+        [
+            A __Boolean_Integral_Constant__ that determines whether this type
+            will model the __Multiple_Sorted_Associative_Container__ concept or
+            the __Unique_Sorted_Associative_Container__ concept.
+        ]
+        []
+    ]
+    [
+        [`CompareSelector`]
+        [
+            A __Unary_Metafunction_Class__ that takes in the value type and
+            returns a __Strict_Weak_Ordering__ model.
+        ]
+        []
+    ]
+    [
+        [`Balancer`]
+        [TODO.]
+        []
+    ]
+]
+[endsect]
+
+[section:model_of Model of]
+[itemized_list
+    [
+        __Simple_Associative_Container__ if `T2` is `void`,
+        __Pair_Associative_Container__ otherwise
+    ]
+    [
+        __Multiple_Sorted_Associative_Container__ if `IsMultipleAssociative`
+        evaluates to __mpl_true__, __Unique_Sorted_Associative_Container__
+        otherwise
+    ]
+    [
+        __Indexable_Container__ if the value associated with __count_key__
+        exists for the return type of `NodeGenerator`
+    ]
+    [__Default_Constructible__ if `T` is __Default_Constructible__]
+    [__Copy_Constructible__ if `T` is __Copy_Constructible__]
+    [__Assignable__ if `T` is __Copy_Constructible__ and __Movable__]
+    [__Movable__ if `T` is __Movable__]
+]
+[endsect]
+
+[section:members Public Members]
+[table
+    [[Name][Definition][Where defined]]
+    [
+        [Key type]
+        [[reference__binode_associative_container__key_type]]
+        [__Associative_Container__]
+    ]
+    [
+        [Value type]
+        [[reference__binode_associative_container__value_type]]
+        [__Associative_Container__]
+    ]
+    [
+        [Reference type]
+        [[reference__binode_associative_container__reference]]
+        [__Container__]
+    ]
+    [
+        [Reference-to-const type]
+        [[reference__binode_associative_container__const_reference]]
+        [__Container__]
+    ]
+    [
+        [Pointer type]
+        [[reference__binode_associative_container__pointer]]
+        [__Container__]
+    ]
+    [
+        [Pointer-to-const type]
+        [[reference__binode_associative_container__const_pointer]]
+        [__Container__]
+    ]
+    [
+        [Node type]
+        [[reference__binode_associative_container__node]]
+        [`binode_associative_container`]
+    ]
+]
+
+Also, given:
+[reference__binode_associative_container__transform_function]
+
+[table
+    [[Name][Definition][Where defined]]
+    [
+        [Iterator type]
+        [[reference__binode_associative_container__iterator]]
+        [__Container__]
+    ]
+    [
+        [Immutable iterator type]
+        [[reference__binode_associative_container__const_iterator]]
+        [__Container__]
+    ]
+    [
+        [Reverse iterator type]
+        [[reference__binode_associative_container__reverse_iterator]]
+        [__Reversible_Container__]
+    ]
+    [
+        [Immutable reverse iterator type]
+        [[reference__binode_associative_container__const_reverse_iterator]]
+        [__Reversible_Container__]
+    ]
+    [
+        [Size type]
+        [[reference__binode_associative_container__size_type]]
+        [__Container__]
+    ]
+    [
+        [Key compare type]
+        [[reference__binode_associative_container__key_compare]]
+        [__Associative_Container__]
+    ]
+    [
+        [Value compare type]
+        [[reference__binode_associative_container__value_compare]]
+        [__Associative_Container__]
+    ]
+    [
+        [Allocator type]
+        [[reference__binode_associative_container__allocator_type]]
+        [`binode_associative_container`]
+    ]
+    [
+        [Default constructor]
+        [[reference__binode_associative_container__default_ctor]]
+        [__Default_Constructible__]
+    ]
+    [
+        [Constructor with allocator]
+        [[reference__binode_associative_container__ctor_w_alloc]]
+        [`binode_associative_container`]
+    ]
+    [
+        [Copy constructor]
+        [[reference__binode_associative_container__copy_ctor]]
+        [__Copy_Constructible__]
+    ]
+    [
+        [Copy constructor with allocator]
+        [[reference__binode_associative_container__copy_ctor_w_alloc]]
+        [`binode_associative_container`]
+    ]
+    [
+        [Move constructor]
+        [``
+            binode_associative_container(
+                binode_associative_container&& source
+            );
+        ``]
+        [__Movable__]
+    ]
+    [
+        [Move constructor with allocator]
+        [``
+            binode_associative_container(
+                binode_associative_container&& source
+              , allocator_type const& allocator
+            );
+        ``]
+        [`binode_associative_container`]
+    ]
+    [
+        [Copy assignment operator]
+        [[reference__binode_associative_container__copy_assign]]
+        [__Assignable__]
+    ]
+    [
+        [Move assignment operator]
+        [``
+            binode_associative_container&
+                operator=(binode_associative_container&& source);
+        ``]
+        [__Movable__]
+    ]
+    [
+        [Destructor]
+        [[reference__binode_associative_container__dtor]]
+        [`binode_associative_container`]
+    ]
+    [
+        [Root node read-only access]
+        [[reference__binode_associative_container__data]]
+        [`binode_associative_container`]
+    ]
+    [
+        [Beginning of read-only range]
+        [[reference__binode_associative_container__cbegin]]
+        [__Container__]
+    ]
+    [
+        [Beginning of range]
+        [[reference__binode_associative_container__begin]]
+        [__Container__]
+    ]
+    [
+        [End of read-only range]
+        [[reference__binode_associative_container__cend]]
+        [__Container__]
+    ]
+    [
+        [End of range]
+        [[reference__binode_associative_container__end]]
+        [__Container__]
+    ]
+    [
+        [Beginning of read-only reverse range]
+        [[reference__binode_associative_container__crbegin]]
+        [__Reversible_Container__]
+    ]
+    [
+        [Beginning of reverse range]
+        [[reference__binode_associative_container__rbegin]]
+        [__Reversible_Container__]
+    ]
+    [
+        [End of read-only reverse range]
+        [[reference__binode_associative_container__crend]]
+        [__Reversible_Container__]
+    ]
+    [
+        [End of reverse range]
+        [[reference__binode_associative_container__rend]]
+        [__Reversible_Container__]
+    ]
+    [
+        [Key-value read-only access]
+        [[reference__binode_associative_container__cfind]]
+        [__Associative_Container__]
+    ]
+    [
+        [Key-value access]
+        [[reference__binode_associative_container__find]]
+        [__Associative_Container__]
+    ]
+    [
+        [Beginning of key-value range read-only access]
+        [[reference__binode_associative_container__lower_bound__const]]
+        [__Sorted_Associative_Container__]
+    ]
+    [
+        [Beginning of key-value range access]
+        [[reference__binode_associative_container__lower_bound]]
+        [__Sorted_Associative_Container__]
+    ]
+    [
+        [End of key-value range read-only access]
+        [[reference__binode_associative_container__upper_bound__const]]
+        [__Sorted_Associative_Container__]
+    ]
+    [
+        [End of key-value range access]
+        [[reference__binode_associative_container__upper_bound]]
+        [__Sorted_Associative_Container__]
+    ]
+    [
+        [Key-value range read-only access]
+        [[reference__binode_associative_container__equal_range__const]]
+        [__Associative_Container__]
+    ]
+    [
+        [Key-value range access]
+        [[reference__binode_associative_container__equal_range]]
+        [__Associative_Container__]
+    ]
+    [
+        [Key-value insertion]
+        [[reference__binode_associative_container__insert]]
+        [__Associative_Container__]
+    ]
+    [
+        [Key-value emplacement]
+        [[reference__binode_associative_container__emplace]]
+        [__Associative_Container__]
+    ]
+    [
+        [Key erasure]
+        [[reference__binode_associative_container__erase]]
+        [__Associative_Container__]
+    ]
+    [
+        [Empty container query]
+        [[reference__binode_associative_container__empty]]
+        [__Container__]
+    ]
+    [
+        [Remove all elements]
+        [[reference__binode_associative_container__clear]]
+        [__Associative_Container__]
+    ]
+    [
+        [Size query]
+        [[reference__binode_associative_container__size]]
+        [__Container__]
+    ]
+    [
+        [Element read-only access]
+        [[reference__binode_associative_container__index_operator__const]]
+        [__Indexable_Container__]
+    ]
+    [
+        [Element access]
+        [[reference__binode_associative_container__index_operator]]
+        [__Indexable_Container__]
+    ]
+]
+[endsect] [/ Members]
+
+[section Test]
+[itemized_list
+    [<__test_binode_set_cpp__>]
+    [<__test_binode_map_cpp__>]
+]
+[endsect]
+
+[endsect] [/ binode_associative_container]
+
Added: sandbox/tree_node/libs/tree_node/doc/ref_binode_container.qbk
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ sandbox/tree_node/libs/tree_node/doc/ref_binode_container.qbk	2013-07-07 14:52:52 EDT (Sun, 07 Jul 2013)	(r84977)
@@ -0,0 +1,342 @@
+[/=============================================================================
+    Copyright (C) 2013 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:binode_container `binode_container<NodeGenerator,T,Balancer>`]
+
+[section Description]
+TODO.
+[endsect]
+
+[section:definition Where defined]
+``
+#include <__binode_container__header__>
+``
+
+Forward-declared:
+
+``
+#include <__binode_container__forward_header__>
+``
+
+To register under __Boost_Typeof__:
+
+``
+#include <__binode_container__typeof_header__>
+``
+[endsect]
+
+[section:tpl_param Template Parameters]
+[table
+    [[Parameter][Description][Default]]
+    [
+        [`NodeGenerator`]
+        [
+            A __Node_Type_Generator__ that takes in the value type and returns
+            a __Binary_Tree_Node__ model.
+        ]
+        []
+    ]
+    [
+        [`T`]
+        [The value type.]
+        []
+    ]
+    [
+        [`Balancer`]
+        [TODO.]
+        [__red_black_balancer__]
+    ]
+]
+[endsect]
+
+[section:model_of Model of]
+[itemized_list
+    [__Front_Insertion_Sequence__]
+    [__Back_Insertion_Sequence__]
+    [
+        __Indexable_Container__ if the value associated with __count_key__
+        exists for the return type of `NodeGenerator`
+    ]
+    [__Default_Constructible__ if `T` is __Default_Constructible__]
+    [__Copy_Constructible__ if `T` is __Copy_Constructible__]
+    [__Assignable__ if `T` is __Copy_Constructible__ and __Movable__]
+    [__Movable__ if `T` is __Movable__]
+]
+[endsect]
+
+[section:members Public Members]
+[table
+    [[Name][Definition][Where defined]]
+    [
+        [Value type]
+        [[reference__binode_container__value_type]]
+        [__Container__]
+    ]
+    [
+        [Reference type]
+        [[reference__binode_container__reference]]
+        [__Container__]
+    ]
+    [
+        [Reference-to-const type]
+        [[reference__binode_container__const_reference]]
+        [__Container__]
+    ]
+    [
+        [Pointer type]
+        [[reference__binode_container__pointer]]
+        [__Container__]
+    ]
+    [
+        [Pointer-to-const type]
+        [[reference__binode_container__const_pointer]]
+        [__Container__]
+    ]
+    [
+        [Node type]
+        [[reference__binode_container__node]]
+        [`binode_container`]
+    ]
+    [
+        [Iterator type]
+        [[reference__binode_container__iterator]]
+        [__Container__]
+    ]
+    [
+        [Immutable iterator type]
+        [[reference__binode_container__const_iterator]]
+        [__Container__]
+    ]
+    [
+        [Reverse iterator type]
+        [[reference__binode_container__reverse_iterator]]
+        [__Reversible_Container__]
+    ]
+    [
+        [Immutable reverse iterator type]
+        [[reference__binode_container__const_reverse_iterator]]
+        [__Reversible_Container__]
+    ]
+    [
+        [Size type]
+        [[reference__binode_container__size_type]]
+        [__Container__]
+    ]
+    [
+        [Allocator type]
+        [[reference__binode_container__allocator_type]]
+        [`binode_container`]
+    ]
+    [
+        [Default constructor]
+        [[reference__binode_container__default_ctor]]
+        [__Default_Constructible__]
+    ]
+    [
+        [Constructor with allocator]
+        [[reference__binode_container__ctor_w_alloc]]
+        [`binode_container`]
+    ]
+    [
+        [Copy constructor]
+        [[reference__binode_container__copy_ctor]]
+        [__Copy_Constructible__]
+    ]
+    [
+        [Copy constructor with allocator]
+        [[reference__binode_container__copy_ctor_w_alloc]]
+        [`binode_container`]
+    ]
+    [
+        [Move constructor]
+        [``
+            binode_container(binode_container&& source);
+        ``]
+        [__Movable__]
+    ]
+    [
+        [Move constructor with allocator]
+        [``
+            binode_container(
+                binode_container&& source
+              , allocator_type const& allocator
+            );
+        ``]
+        [`binode_container`]
+    ]
+    [
+        [Copy assignment operator]
+        [[reference__binode_container__copy_assign]]
+        [__Assignable__]
+    ]
+    [
+        [Move assignment operator]
+        [``
+            binode_container& operator=(binode_container&& source);
+        ``]
+        [__Movable__]
+    ]
+    [
+        [Destructor]
+        [[reference__binode_container__dtor]]
+        [`binode_container`]
+    ]
+    [
+        [Root node read-only access]
+        [[reference__binode_container__data__const]]
+        [`binode_container`]
+    ]
+    [
+        [Root node access]
+        [[reference__binode_container__data]]
+        [`binode_container`]
+    ]
+    [
+        [Beginning of read-only range]
+        [[reference__binode_container__cbegin]]
+        [__Container__]
+    ]
+    [
+        [Beginning of range]
+        [[reference__binode_container__begin]]
+        [__Container__]
+    ]
+    [
+        [End of read-only range]
+        [[reference__binode_container__cend]]
+        [__Container__]
+    ]
+    [
+        [End of range]
+        [[reference__binode_container__end]]
+        [__Container__]
+    ]
+    [
+        [Beginning of read-only reverse range]
+        [[reference__binode_container__crbegin]]
+        [__Reversible_Container__]
+    ]
+    [
+        [Beginning of reverse range]
+        [[reference__binode_container__rbegin]]
+        [__Reversible_Container__]
+    ]
+    [
+        [End of read-only reverse range]
+        [[reference__binode_container__crend]]
+        [__Reversible_Container__]
+    ]
+    [
+        [End of reverse range]
+        [[reference__binode_container__rend]]
+        [__Reversible_Container__]
+    ]
+    [
+        [Back read-only access]
+        [[reference__binode_container__cback]]
+        [__Sequence__]
+    ]
+    [
+        [Back access]
+        [[reference__binode_container__back]]
+        [__Sequence__]
+    ]
+    [
+        [Back insertion]
+        [[reference__binode_container__push_back]]
+        [__Back_Insertion_Sequence__]
+    ]
+    [
+        [Back emplacement]
+        [[reference__binode_container__emplace_back]]
+        [__Back_Insertion_Sequence__]
+    ]
+    [
+        [Back removal]
+        [[reference__binode_container__pop_back]]
+        [__Back_Insertion_Sequence__]
+    ]
+    [
+        [Front read-only access]
+        [[reference__binode_container__cfront]]
+        [__Sequence__]
+    ]
+    [
+        [Front access]
+        [[reference__binode_container__front]]
+        [__Sequence__]
+    ]
+    [
+        [Front insertion]
+        [[reference__binode_container__push_front]]
+        [__Front_Insertion_Sequence__]
+    ]
+    [
+        [Front emplacement]
+        [[reference__binode_container__emplace_front]]
+        [__Front_Insertion_Sequence__]
+    ]
+    [
+        [Front removal]
+        [[reference__binode_container__pop_front]]
+        [__Front_Insertion_Sequence__]
+    ]
+    [
+        [Insertion]
+        [[reference__binode_container__insert]]
+        [__Sequence__]
+    ]
+    [
+        [Emplacement]
+        [[reference__binode_container__emplace]]
+        [__Sequence__]
+    ]
+    [
+        [Erasure]
+        [[reference__binode_container__erase]]
+        [__Sequence__]
+    ]
+    [
+        [Range erasure]
+        [[reference__binode_container__erase_range]]
+        [__Sequence__]
+    ]
+    [
+        [Empty container query]
+        [[reference__binode_container__empty]]
+        [__Container__]
+    ]
+    [
+        [Remove all elements]
+        [[reference__binode_container__clear]]
+        [__Sequence__]
+    ]
+    [
+        [Size query]
+        [[reference__binode_container__size]]
+        [__Container__]
+    ]
+    [
+        [Element read-only access]
+        [[reference__binode_container__index_operator__const]]
+        [__Indexable_Container__]
+    ]
+    [
+        [Element access]
+        [[reference__binode_container__index_operator]]
+        [__Indexable_Container__]
+    ]
+]
+[endsect] [/ Members]
+
+[section Test]
+<__test_binode_container_cpp__>
+[endsect]
+
+[endsect] [/ binode_container]
+
Added: sandbox/tree_node/libs/tree_node/doc/ref_binode_map.qbk
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ sandbox/tree_node/libs/tree_node/doc/ref_binode_map.qbk	2013-07-07 14:52:52 EDT (Sun, 07 Jul 2013)	(r84977)
@@ -0,0 +1,173 @@
+[/=============================================================================
+    Copyright (C) 2013 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:binode_map
+    `binode_map<NodeGenerator,Key,Mapped,CompareSelector,Balancer>`
+]
+
+[section Description]
+TODO.
+[endsect]
+
+[section:definition Where defined]
+``
+#include <__binode_associative_container__header__>
+``
+
+Forward-declared:
+
+``
+#include <__binode_associative_container__forward_header__>
+``
+
+To register under __Boost_Typeof__:
+
+``
+#include <__binode_associative_container__typeof_header__>
+``
+[endsect]
+
+[section:tpl_param Template Parameters]
+[table
+    [[Parameter][Description][Default]]
+    [
+        [`NodeGenerator`]
+        [
+            A __Node_Type_Generator__ that takes in the value type and returns
+            a __Binary_Tree_Node__ model.
+        ]
+        []
+    ]
+    [
+        [`Key`]
+        [The key type.]
+        []
+    ]
+    [
+        [`Mapped`]
+        [The mapped type.]
+        []
+    ]
+    [
+        [`CompareSelector`]
+        [
+            A __Unary_Metafunction_Class__ that takes in the value type and
+            returns a __Strict_Weak_Ordering__ model.
+        ]
+        [__less_than_selector__]
+    ]
+    [
+        [`Balancer`]
+        [TODO.]
+        [__red_black_balancer__]
+    ]
+]
+[endsect]
+
+[section:model_of Model of]
+
+[itemized_list
+    [__Pair_Associative_Container__]
+    [__Unique_Sorted_Associative_Container__]
+    [
+        __Indexable_Container__ if the value associated with __count_key__
+        exists for the return type of `NodeGenerator`
+    ]
+    [__Default_Constructible__ if `T` is __Default_Constructible__]
+    [__Copy_Constructible__ if `T` is __Copy_Constructible__]
+    [__Assignable__ if `T` is __Copy_Constructible__ and __Movable__]
+    [__Movable__ if `T` is __Movable__]
+]
+[endsect]
+
+[section:public_bases Public Base Classes]
+[reference__binode_map__bases]
+[endsect]
+
+[section:members Public Members]
+In addition to those inherited from __binode_associative_container__, the
+following members are defined:
+
+[table
+    [[Name][Definition][Where defined]]
+    [
+        [Mapped type]
+        [[reference__binode_map__mapped_type]]
+        [__Pair_Associative_Container__]
+    ]
+    [
+        [Default constructor]
+        [``
+            binode_map();
+        ``]
+        [__Default_Constructible__]
+    ]
+    [
+        [Constructor with allocator]
+        [``
+            explicit binode_map(allocator_type const& allocator);
+        ``]
+        [`binode_map`]
+    ]
+    [
+        [Copy constructor]
+        [``
+            binode_map(binode_map const& copy);
+        ``]
+        [__Copy_Constructible__]
+    ]
+    [
+        [Copy constructor with allocator]
+        [``
+            binode_map(
+                binode_map const& copy
+              , allocator_type const& allocator
+            );
+        ``]
+        [`binode_map`]
+    ]
+    [
+        [Move constructor]
+        [``
+            binode_map(binode_map&& source);
+        ``]
+        [__Movable__]
+    ]
+    [
+        [Move constructor with allocator]
+        [``
+            binode_map(
+                binode_map&& source
+              , allocator_type const& allocator
+            );
+        ``]
+        [`binode_map`]
+    ]
+    [
+        [Copy assignment operator]
+        [``
+            binode_map& operator=(binode_map const& copy);
+        ``]
+        [__Assignable__]
+    ]
+    [
+        [Move assignment operator]
+        [``
+            binode_map& operator=(binode_map&& source);
+        ``]
+        [__Movable__]
+    ]
+]
+[endsect] [/ Members]
+
+[section Test]
+<__test_binode_map_cpp__>
+[endsect]
+
+[endsect] [/ binode_map]
+
Added: sandbox/tree_node/libs/tree_node/doc/ref_binode_multimap.qbk
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ sandbox/tree_node/libs/tree_node/doc/ref_binode_multimap.qbk	2013-07-07 14:52:52 EDT (Sun, 07 Jul 2013)	(r84977)
@@ -0,0 +1,172 @@
+[/=============================================================================
+    Copyright (C) 2013 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:binode_multimap
+    `binode_multimap<NodeGenerator,Key,Mapped,CompareSelector,Balancer>`
+]
+
+[section Description]
+TODO.
+[endsect]
+
+[section:definition Where defined]
+``
+#include <__binode_associative_container__header__>
+``
+
+Forward-declared:
+
+``
+#include <__binode_associative_container__forward_header__>
+``
+
+To register under __Boost_Typeof__:
+
+``
+#include <__binode_associative_container__typeof_header__>
+``
+[endsect]
+
+[section:tpl_param Template Parameters]
+[table
+    [[Parameter][Description][Default]]
+    [
+        [`NodeGenerator`]
+        [
+            A __Node_Type_Generator__ that takes in the value type and returns
+            a __Binary_Tree_Node__ model.
+        ]
+        []
+    ]
+    [
+        [`Key`]
+        [The key type.]
+        []
+    ]
+    [
+        [`Mapped`]
+        [The mapped type.]
+        []
+    ]
+    [
+        [`CompareSelector`]
+        [
+            A __Unary_Metafunction_Class__ that takes in the value type and
+            returns a __Strict_Weak_Ordering__ model.
+        ]
+        [__less_than_selector__]
+    ]
+    [
+        [`Balancer`]
+        [TODO.]
+        [__red_black_balancer__]
+    ]
+]
+[endsect]
+
+[section:model_of Model of]
+[itemized_list
+    [__Pair_Associative_Container__]
+    [__Multiple_Sorted_Associative_Container__]
+    [
+        __Indexable_Container__ if the value associated with __count_key__
+        exists for the return type of `NodeGenerator`
+    ]
+    [__Default_Constructible__ if `T` is __Default_Constructible__]
+    [__Copy_Constructible__ if `T` is __Copy_Constructible__]
+    [__Assignable__ if `T` is __Copy_Constructible__ and __Movable__]
+    [__Movable__ if `T` is __Movable__]
+]
+[endsect]
+
+[section:public_bases Public Base Classes]
+[reference__binode_multimap__bases]
+[endsect]
+
+[section:members Public Members]
+In addition to those inherited from __binode_associative_container__, the
+following members are defined:
+
+[table
+    [[Name][Definition][Where defined]]
+    [
+        [Mapped type]
+        [[reference__binode_multimap__mapped_type]]
+        [__Pair_Associative_Container__]
+    ]
+    [
+        [Default constructor]
+        [``
+            binode_multimap();
+        ``]
+        [__Default_Constructible__]
+    ]
+    [
+        [Constructor with allocator]
+        [``
+            explicit binode_multimap(allocator_type const& allocator);
+        ``]
+        [`binode_map`]
+    ]
+    [
+        [Copy constructor]
+        [``
+            binode_multimap(binode_multimap const& copy);
+        ``]
+        [__Copy_Constructible__]
+    ]
+    [
+        [Copy constructor with allocator]
+        [``
+            binode_multimap(
+                binode_multimap const& copy
+              , allocator_type const& allocator
+            );
+        ``]
+        [`binode_multimap`]
+    ]
+    [
+        [Move constructor]
+        [``
+            binode_multimap(binode_multimap&& source);
+        ``]
+        [__Movable__]
+    ]
+    [
+        [Move constructor with allocator]
+        [``
+            binode_multimap(
+                binode_multimap&& source
+              , allocator_type const& allocator
+            );
+        ``]
+        [`binode_multimap`]
+    ]
+    [
+        [Copy assignment operator]
+        [``
+            binode_multimap& operator=(binode_multimap const& copy);
+        ``]
+        [__Assignable__]
+    ]
+    [
+        [Move assignment operator]
+        [``
+            binode_multimap& operator=(binode_multimap&& source);
+        ``]
+        [__Movable__]
+    ]
+]
+[endsect] [/ Members]
+
+[section Test]
+<__test_binode_map_cpp__>
+[endsect]
+
+[endsect] [/ binode_multimap]
+
Added: sandbox/tree_node/libs/tree_node/doc/ref_binode_multiset.qbk
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ sandbox/tree_node/libs/tree_node/doc/ref_binode_multiset.qbk	2013-07-07 14:52:52 EDT (Sun, 07 Jul 2013)	(r84977)
@@ -0,0 +1,162 @@
+[/=============================================================================
+    Copyright (C) 2013 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:binode_multiset
+    `binode_multiset<NodeGenerator,T,CompareSelector,Balancer>`
+]
+
+[section Description]
+TODO.
+[endsect]
+
+[section:definition Where defined]
+``
+#include <__binode_associative_container__header__>
+``
+
+Forward-declared:
+
+``
+#include <__binode_associative_container__forward_header__>
+``
+
+To register under __Boost_Typeof__:
+
+``
+#include <__binode_associative_container__typeof_header__>
+``
+[endsect]
+
+[section:tpl_param Template Parameters]
+[table
+    [[Parameter][Description][Default]]
+    [
+        [`NodeGenerator`]
+        [
+            A __Node_Type_Generator__ that takes in the value type and returns
+            a __Binary_Tree_Node__ model.
+        ]
+        []
+    ]
+    [
+        [`T`]
+        [The key type, also the value type.]
+        []
+    ]
+    [
+        [`CompareSelector`]
+        [
+            A __Unary_Metafunction_Class__ that takes in the value type and
+            returns a __Strict_Weak_Ordering__ model.
+        ]
+        [__less_than_selector__]
+    ]
+    [
+        [`Balancer`]
+        [TODO.]
+        [__red_black_balancer__]
+    ]
+]
+[endsect]
+
+[section:model_of Model of]
+[itemized_list
+    [__Simple_Associative_Container__]
+    [__Multiple_Sorted_Associative_Container__]
+    [
+        __Indexable_Container__ if the value associated with __count_key__
+        exists for the return type of `NodeGenerator`
+    ]
+    [__Default_Constructible__ if `T` is __Default_Constructible__]
+    [__Copy_Constructible__ if `T` is __Copy_Constructible__]
+    [__Assignable__ if `T` is __Copy_Constructible__ and __Movable__]
+    [__Movable__ if `T` is __Movable__]
+]
+[endsect]
+
+[section:public_bases Public Base Classes]
+[reference__binode_multiset__bases]
+[endsect]
+
+[section:members Public Members]
+In addition to those inherited from __binode_associative_container__, the
+following members are defined:
+
+[table
+    [[Name][Definition][Where defined]]
+    [
+        [Default constructor]
+        [``
+            binode_multiset();
+        ``]
+        [__Default_Constructible__]
+    ]
+    [
+        [Constructor with allocator]
+        [``
+            explicit binode_multiset(allocator_type const& allocator);
+        ``]
+        [`binode_multiset`]
+    ]
+    [
+        [Copy constructor]
+        [``
+            binode_multiset(binode_multiset const& copy);
+        ``]
+        [__Copy_Constructible__]
+    ]
+    [
+        [Copy constructor with allocator]
+        [``
+            binode_multiset(
+                binode_multiset const& copy
+              , allocator_type const& allocator
+            );
+        ``]
+        [`binode_multiset`]
+    ]
+    [
+        [Move constructor]
+        [``
+            binode_multiset(binode_multiset&& source);
+        ``]
+        [__Movable__]
+    ]
+    [
+        [Move constructor with allocator]
+        [``
+            binode_multiset(
+                binode_multiset&& source
+              , allocator_type const& allocator
+            );
+        ``]
+        [`binode_multiset`]
+    ]
+    [
+        [Copy assignment operator]
+        [``
+            binode_multiset& operator=(binode_multiset const& copy);
+        ``]
+        [__Assignable__]
+    ]
+    [
+        [Move assignment operator]
+        [``
+            binode_multiset& operator=(binode_multiset&& source);
+        ``]
+        [__Movable__]
+    ]
+]
+[endsect] [/ Members]
+
+[section Test]
+<__test_binode_set_cpp__>
+[endsect]
+
+[endsect] [/ binode_multiset]
+
Added: sandbox/tree_node/libs/tree_node/doc/ref_binode_set.qbk
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ sandbox/tree_node/libs/tree_node/doc/ref_binode_set.qbk	2013-07-07 14:52:52 EDT (Sun, 07 Jul 2013)	(r84977)
@@ -0,0 +1,160 @@
+[/=============================================================================
+    Copyright (C) 2013 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:binode_set `binode_set<NodeGenerator,T,CompareSelector,Balancer>`]
+
+[section Description]
+TODO.
+[endsect]
+
+[section:definition Where defined]
+``
+#include <__binode_associative_container__header__>
+``
+
+Forward-declared:
+
+``
+#include <__binode_associative_container__forward_header__>
+``
+
+To register under __Boost_Typeof__:
+
+``
+#include <__binode_associative_container__typeof_header__>
+``
+[endsect]
+
+[section:tpl_param Template Parameters]
+[table
+    [[Parameter][Description][Default]]
+    [
+        [`NodeGenerator`]
+        [
+            A __Node_Type_Generator__ that takes in the value type and returns
+            a __Binary_Tree_Node__ model.
+        ]
+        []
+    ]
+    [
+        [`T`]
+        [The key type, also the value type.]
+        []
+    ]
+    [
+        [`CompareSelector`]
+        [
+            A __Unary_Metafunction_Class__ that takes in the value type and
+            returns a __Strict_Weak_Ordering__ model.
+        ]
+        [__less_than_selector__]
+    ]
+    [
+        [`Balancer`]
+        [TODO.]
+        [__red_black_balancer__]
+    ]
+]
+[endsect]
+
+[section:model_of Model of]
+[itemized_list
+    [__Simple_Associative_Container__]
+    [__Unique_Sorted_Associative_Container__]
+    [
+        __Indexable_Container__ if the value associated with __count_key__
+        exists for the return type of `NodeGenerator`
+    ]
+    [__Default_Constructible__ if `T` is __Default_Constructible__]
+    [__Copy_Constructible__ if `T` is __Copy_Constructible__]
+    [__Assignable__ if `T` is __Copy_Constructible__ and __Movable__]
+    [__Movable__ if `T` is __Movable__]
+]
+[endsect]
+
+[section:public_bases Public Base Classes]
+[reference__binode_set__bases]
+[endsect]
+
+[section:members Public Members]
+In addition to those inherited from __binode_associative_container__, the
+following members are defined:
+
+[table
+    [[Name][Definition][Where defined]]
+    [
+        [Default constructor]
+        [``
+            binode_set();
+        ``]
+        [__Default_Constructible__]
+    ]
+    [
+        [Constructor with allocator]
+        [``
+            explicit binode_set(allocator_type const& allocator);
+        ``]
+        [`binode_set`]
+    ]
+    [
+        [Copy constructor]
+        [``
+            binode_set(binode_set const& copy);
+        ``]
+        [__Copy_Constructible__]
+    ]
+    [
+        [Copy constructor with allocator]
+        [``
+            binode_set(
+                binode_set const& copy
+              , allocator_type const& allocator
+            );
+        ``]
+        [`binode_set`]
+    ]
+    [
+        [Move constructor]
+        [``
+            binode_set(binode_set&& source);
+        ``]
+        [__Movable__]
+    ]
+    [
+        [Move constructor with allocator]
+        [``
+            binode_set(
+                binode_set&& source
+              , allocator_type const& allocator
+            );
+        ``]
+        [`binode_set`]
+    ]
+    [
+        [Copy assignment operator]
+        [``
+            binode_set& operator=(binode_set const& copy);
+        ``]
+        [__Assignable__]
+    ]
+    [
+        [Move assignment operator]
+        [``
+            binode_set& operator=(binode_set&& source);
+        ``]
+        [__Movable__]
+    ]
+]
+[endsect] [/ Members]
+
+[section Test]
+<__test_binode_set_cpp__>
+[endsect]
+
+[endsect] [/ binode_set]
+
Added: sandbox/tree_node/libs/tree_node/doc/ref_breadth_first_desc_iter.qbk
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ sandbox/tree_node/libs/tree_node/doc/ref_breadth_first_desc_iter.qbk	2013-07-07 14:52:52 EDT (Sun, 07 Jul 2013)	(r84977)
@@ -0,0 +1,342 @@
+[/=============================================================================
+    Copyright (C) 2011-2013 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_desc_iter
+    `breadth_first_descendant_iterator<Node,Selector>`
+]
+
+[section Synopsis]
+[reference__breadth_first_descendant_iterator]
+[endsect]
+
+[section Description]
+This iterator traverses the descendants of the root node passed to its
+constructor in breadth-first fashion: e.g. given the following tree
+representation:
+
+``
+      D
+      |
+  E---+---B
+  |       |
++-+-+   +-+-+
+|   |   |   |
+A   F   C   G
+``
+
+By default, this iterator will traverse the tree nodes in the following order:
+
+``
+E B A F C G
+``
+
+However, if the `Selector` template argument causes the buffer to sort its
+elements according to a particular ordering, then the iterator traversal will
+take this ordering into account as well as the ply of the nodes.  In this
+example, if the buffer prioritizes lower ASCII values over higher ones, then
+this iterator will traverse the tree nodes in the following order:
+
+``
+B C E A F G
+``
+[endsect]
+
+[section:definition Where defined]
+``
+#include <__breadth_first_descendant_iterator__header__>
+``
+
+To register under __Boost_Typeof__:
+
+``
+#include <__breadth_first_descendant_iterator__typeof_header__>
+``
+[endsect]
+
+[section:tpl_param Template Parameters]
+[table
+    [[Parameter][Description][Requirements][Default]]
+    [
+        [`Node`]
+        [The type of a tree node.]
+        [
+            It must model the __Tree_Node__ concept, but it can be
+            `const`-qualified.
+        ]
+        []
+    ]
+    [
+        [`Selector`]
+        [
+            The type that determines the buffer used to enforce breadth-first
+            order.
+        ]
+        [
+            Either [^_container_gen_<Selector>::type] must evaluate to a
+            double-ended __Sequence__, or [^_is_std_heap_selector_<Selector>]
+            or [^_is_heap_selector_<Selector>] must evaluate to __mpl_true__.
+        ]
+        [__dequeS__]
+    ]
+]
+[endsect]
+
+[section:model_of Model of]
+[itemized_list
+    [__Tree_Node_Descendant_Iterator__]
+    [__Default_Constructible__]
+    [__Copy_Constructible__]
+    [__Assignable__]
+]
+[endsect]
+
+[section Members]
+[table
+    [[Name][Expression][Description][Type requirements]]
+    [
+        [Value type]
+        [``
+            typedef ... value_type;
+        ``]
+        [Defined by the __Tree_Node_Descendant_Iterator__ concept.]
+        []
+    ]
+    [
+        [Reference type]
+        [``
+            typedef ... reference;
+        ``]
+        [Defined by the __Forward_Iterator__ concept.]
+        []
+    ]
+    [
+        [Pointer type]
+        [``
+            typedef ... pointer;
+        ``]
+        [Defined by the __Forward_Iterator__ concept.]
+        []
+    ]
+    [
+        [Distance type]
+        [``
+            typedef ... difference_type;
+        ``]
+        [Defined by the __Forward_Iterator__ concept.]
+        []
+    ]
+    [
+        [Iterator category]
+        [``
+            typedef ... iterator_category;
+        ``]
+        [Defined by the __Forward_Iterator__ concept.]
+        []
+    ]
+    [
+        [Default constructor]
+        [``
+            breadth_first_descendant_iterator();
+        ``]
+        [
+            Sets this iterator past-the-end.  Required by the
+            __Default_Constructible__ concept.
+        ]
+        [
+            The buffer type as determined by `Selector` must also model the
+            __Default_Constructible__ concept.
+        ]
+    ]
+    [
+        [Constructor with comparator]
+        [``
+            template <typename Compare>
+            explicit breadth_first_descendant_iterator(Compare const&);
+        ``]
+        [
+            Sets this iterator past-the-end, and constructs the underlying
+            buffer with the specified comparator.
+        ]
+        [
+            The underlying buffer must be constructible using the specified
+            comparator.
+        ]
+    ]
+    [
+        [Constructor from node]
+        [``
+            explicit breadth_first_descendant_iterator(Node&);
+        ``]
+        [Defined by the __Tree_Node_Descendant_Iterator__ concept.]
+        [
+            The buffer type as determined by `Selector` must model the
+            __Default_Constructible__ concept.
+        ]
+    ]
+    [
+        [Constructor from node with comparator]
+        [``
+            template <typename Compare>
+            breadth_first_descendant_iterator(Node&, Compare const&);
+        ``]
+        [
+            Sets this iterator to traverse the descendants of the specified
+            node, and constructs the underlying buffer with the specified
+            comparator.
+        ]
+        [
+            The underlying buffer must be constructible using the specified
+            comparator.
+        ]
+    ]
+    [
+        [Conversion constructor]
+        [``
+            template <typename N, typename S>
+            breadth_first_descendant_iterator(
+                breadth_first_descendant_iterator<N,S> const&
+            );
+        ``]
+        [
+            Constructs this iterator as a copy of the specified one so that the
+            current node is of type `Node`.
+        ]
+        [
+            Both [^_tr1_is_convertible_<N,Node>] and
+            [^_tr1_is_same_<S,Selector>] must evaluate to __tr1_true_type__.
+        ]
+    ]
+    [
+        [Copy constructor]
+        [``
+            breadth_first_descendant_iterator(
+                breadth_first_descendant_iterator const&
+            );
+        ``]
+        [Defined by the __Copy_Constructible__ concept.]
+        []
+    ]
+    [
+        [Assignment operator]
+        [``
+            breadth_first_descendant_iterator&
+                operator=(breadth_first_descendant_iterator const&);
+        ``]
+        [Defined by the __Assignable__ concept.]
+        []
+    ]
+    [
+        [Dereference operator]
+        [``
+            reference operator*() const;
+        ``]
+        [
+            If the `Node` type models the __Associative_Tree_Node__ concept,
+            returns an object whose `first` member refers to the key that is
+            associated with the current node.  If the `Node` type models
+            the __Non_Associative_Tree_Node__ concept, returns the current
+            node.  Required by the __Forward_Iterator__ concept.
+        ]
+        []
+    ]
+    [
+        [Indirection operator]
+        [``
+            pointer operator->() const;
+        ``]
+        [
+            If the `Node` type models the __Associative_Tree_Node__ concept,
+            returns a pointer to the object whose `first` member refers to the
+            key associated with the current node.  If the `Node` type models
+            the __Non_Associative_Tree_Node__ concept, returns a pointer to
+            the current node.  Required by the __Forward_Iterator__ concept.
+        ]
+        []
+    ]
+    [
+        [Pre-increment operator]
+        [``
+            breadth_first_descendant_iterator& operator++();
+        ``]
+        [
+            Enqueues the children of the current node, then dequeues the next
+            node and sets the invoking iterator to point to it.  Returns the
+            invoking iterator.  Required by the __Forward_Iterator__ concept.
+        ]
+        []
+    ]
+    [
+        [Post-increment operator]
+        [``
+            breadth_first_descendant_iterator operator++(int);
+        ``]
+        [
+            Enqueues the children of the current node, then dequeues the next
+            node and sets the invoking iterator to point to it.  Returns a new
+            iterator pointing to the (previous) current node.  Required by the
+            __Forward_Iterator__ concept.
+        ]
+        []
+    ]
+    [
+        [Traversal state conversion operator]
+        [``
+            operator _traversal_state_() const;
+        ``]
+        [Defined by the __Tree_Node_Iterator__ concept.]
+        []
+    ]
+]
+[endsect] [/ Members]
+
+[section:non_members Non-members]
+[table
+    [[Name][Definition][Description]]
+    [
+        [Iterator creation]
+        [[reference__make_breadth_first_descendant_iterator]]
+        [
+            Constructs and returns a `breadth_first_descendant_iterator` that
+            will iterate through the descendants of the specified node.
+        ]
+    ]
+    [
+        [Iterator creation with selector]
+        [[reference__make_breadth_first_descendant_iterator__with_selector]]
+        [
+            Constructs and returns a `breadth_first_descendant_iterator` that
+            will iterate through the descendants of the specified node.  The
+            `Selector` type will determine the buffer used to enforce
+            breadth-first order.
+        ]
+    ]
+]
+[endsect]
+
+[section Example]
+If a tree possess the property that the value associated with each non-root
+node is greater than that associated with its parent, then a breadth-first
+traversal that prioritizes lower-value nodes over higher-value ones will output
+a sorted range.  The __cartesian_sort__ algorithm's implementation generates a
+tree that possesses this property.
+
+[impl__cartesian_sort__build_tree]
+
+The __std_heap_selector__ type induces the `breadth_first_descendant_iterator`
+to replace the usual FIFO queue with a priority queue, while the
+__tree_node_compareS__ type enables the priority queue to store pointers or
+iterators to tree nodes while prioritizing according to their data.  However,
+by default, the comparator will prioritize nodes with higher-value data over
+nodes with lower-value data, so it is necessary to use __boost_bind__ to
+generate the appropriate comparator by switching the arguments to `compare`.
+
+[impl__cartesian_sort__breadth_first_descendant_iterate_with_priority]
+[endsect]
+
+[endsect] [/ breadth_first_descendant_iterator]
+
Added: sandbox/tree_node/libs/tree_node/doc/ref_breadth_first_iterator.qbk
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ sandbox/tree_node/libs/tree_node/doc/ref_breadth_first_iterator.qbk	2013-07-07 14:52:52 EDT (Sun, 07 Jul 2013)	(r84977)
@@ -0,0 +1,328 @@
+[/=============================================================================
+    Copyright (C) 2011-2013 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<Node,Selector>`]
+
+[section Synopsis]
+[reference__breadth_first_iterator]
+[endsect]
+
+[section Description]
+This iterator traverses the root node passed to its constructor--and all its
+descendants--in breadth-first fashion: e.g. given the following tree
+representation:
+
+``
+      D
+      |
+  E---+---B
+  |       |
++-+-+   +-+-+
+|   |   |   |
+A   F   C   G
+``
+
+By default, this iterator will traverse the tree nodes in the following order:
+
+``
+D E B A F C G
+``
+
+However, if the `Selector` template argument causes the buffer to sort its
+elements according to a particular ordering, then the iterator traversal will
+take this ordering into account as well as the ply of the nodes.  In this
+example, if the buffer prioritizes lower ASCII values over higher ones, then
+this iterator will traverse the tree nodes in the following order:
+
+``
+D B C E A F G
+``
+[endsect]
+
+[section:definition Where defined]
+``
+#include <__breadth_first_iterator__header__>
+``
+
+To register under __Boost_Typeof__:
+
+``
+#include <__breadth_first_iterator__typeof_header__>
+``
+[endsect]
+
+[section:tpl_param Template Parameters]
+[table
+    [[Parameter][Description][Requirements][Default]]
+    [
+        [`Node`]
+        [The type of a tree node.]
+        [
+            It must model the __Tree_Node__ concept, but it can be
+            `const`-qualified.
+        ]
+        []
+    ]
+    [
+        [`Selector`]
+        [
+            The type that determines the buffer used to enforce breadth-first
+            order.
+        ]
+        [
+            Either [^_container_gen_<Selector>::type] must evaluate to a
+            double-ended __Sequence__, or [^_is_std_heap_selector_<Selector>]
+            or [^_is_heap_selector_<Selector>] must evaluate to __mpl_true__.
+        ]
+        [__dequeS__]
+    ]
+]
+[endsect]
+
+[section:model_of Model of]
+[itemized_list
+    [__Full_Tree_Node_Iterator__]
+    [__Default_Constructible__]
+    [__Copy_Constructible__]
+    [__Assignable__]
+]
+[endsect]
+
+[section Members]
+[table
+    [[Name][Expression][Description][Type requirements]]
+    [
+        [Value type]
+        [``
+            typedef ... value_type;
+        ``]
+        [Defined by the __Full_Tree_Node_Iterator__ concept.]
+        []
+    ]
+    [
+        [Reference type]
+        [``
+            typedef ... reference;
+        ``]
+        [Defined by the __Forward_Iterator__ concept.]
+        []
+    ]
+    [
+        [Pointer type]
+        [``
+            typedef ... pointer;
+        ``]
+        [Defined by the __Forward_Iterator__ concept.]
+        []
+    ]
+    [
+        [Distance type]
+        [``
+            typedef ... difference_type;
+        ``]
+        [Defined by the __Forward_Iterator__ concept.]
+        []
+    ]
+    [
+        [Iterator category]
+        [``
+            typedef ... iterator_category;
+        ``]
+        [Defined by the __Forward_Iterator__ concept.]
+        []
+    ]
+    [
+        [Default constructor]
+        [``
+            breadth_first_iterator();
+        ``]
+        [
+            Sets this iterator past-the-end.  Required by the
+            __Default_Constructible__ concept.
+        ]
+        [
+            The buffer type as determined by `Selector` must also model the
+            __Default_Constructible__ concept.
+        ]
+    ]
+    [
+        [Constructor with comparator]
+        [``
+            template <typename Compare>
+            explicit breadth_first_iterator(Compare const&);
+        ``]
+        [
+            Sets this iterator past-the-end, and constructs the underlying
+            buffer with the specified comparator.
+        ]
+        [
+            The underlying buffer must be constructible using the specified
+            comparator.
+        ]
+    ]
+    [
+        [Constructor from node]
+        [``
+            explicit breadth_first_iterator(Node&);
+        ``]
+        [Defined by the __Full_Tree_Node_Iterator__ concept.]
+        [
+            The buffer type as determined by `Selector` must model the
+            __Default_Constructible__ concept.
+        ]
+    ]
+    [
+        [Constructor from node with comparator]
+        [``
+            template <typename Compare>
+            breadth_first_iterator(Node&, Compare const&);
+        ``]
+        [
+            Sets this iterator to traverse the specified node and its
+            descendants, and constructs the underlying buffer with the
+            specified comparator.
+        ]
+        [
+            The underlying buffer must be constructible using the specified
+            comparator.
+        ]
+    ]
+    [
+        [Conversion constructor]
+        [``
+            template <typename N, typemame S>
+            breadth_first_iterator(breadth_first_iterator<N,S> const&);
+        ``]
+        [
+            Constructs this iterator as a copy of the specified one so that the
+            current node is of type `Node`.
+        ]
+        [
+            Both [^_tr1_is_convertible_<N,Node>] and
+            [^_tr1_is_same_<S,Selector>] must evaluate to __tr1_true_type__.
+        ]
+    ]
+    [
+        [Copy constructor]
+        [``
+            breadth_first_iterator(breadth_first_iterator const&);
+        ``]
+        [Defined by the __Copy_Constructible__ concept.]
+        []
+    ]
+    [
+        [Assignment operator]
+        [``
+            breadth_first_iterator& operator=(breadth_first_iterator const&);
+        ``]
+        [Defined by the __Assignable__ concept.]
+        []
+    ]
+    [
+        [Dereference operator]
+        [``
+            reference operator*() const;
+        ``]
+        [
+            Returns the current node.  Required by the __Forward_Iterator__
+            concept.
+        ]
+        []
+    ]
+    [
+        [Indirection operator]
+        [``
+            pointer operator->() const;
+        ``]
+        [
+            Returns a pointer to the current node.  Required by the
+            __Forward_Iterator__ concept.
+        ]
+        []
+    ]
+    [
+        [Pre-increment operator]
+        [``
+            breadth_first_iterator& operator++();
+        ``]
+        [
+            Enqueues the children of the current node, then dequeues the next
+            node and sets the invoking iterator to point to it.  Returns the
+            invoking iterator.  Required by the __Forward_Iterator__ concept.
+        ]
+        []
+    ]
+    [
+        [Post-increment operator]
+        [``
+            breadth_first_iterator operator++(int);
+        ``]
+        [
+            Enqueues the children of the current node, then dequeues the next
+            node and sets the invoking iterator to point to it.  Returns a new
+            iterator pointing to the (previous) current node.  Required by the
+            __Forward_Iterator__ concept.
+        ]
+        []
+    ]
+    [
+        [Traversal state conversion operator]
+        [``
+            operator _traversal_state_() const;
+        ``]
+        [Defined by the __Tree_Node_Iterator__ concept.]
+        []
+    ]
+]
+[endsect] [/ Members]
+
+[section:non_members Non-members]
+[table
+    [[Name][Definition][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.
+        ]
+    ]
+    [
+        [Iterator creation with selector]
+        [[reference__make_breadth_first_iterator__with_selector]]
+        [
+            Constructs and returns a `breadth_first_iterator` that will iterate
+            through the specified node and its descendants.  The `Selector`
+            type will determine the buffer used to enforce breadth-first order.
+        ]
+    ]
+]
+[endsect]
+
+[section Example]
+If a tree possess the property that the value associated with each non-root
+node is greater than that associated with its parent, then a breadth-first
+traversal that prioritizes lower-value nodes over higher-value ones will output
+a sorted range.  The __cartesian_sort__ algorithm's implementation generates a
+tree that possesses this property.
+
+[impl__cartesian_sort__build_tree]
+
+The __std_heap_selector__ type induces the `breadth_first_iterator` to replace
+the usual FIFO queue with a priority queue, while the __tree_node_compareS__
+type enables the priority queue to store pointers or iterators to tree nodes
+while prioritizing according to their data.  However, by default, the
+comparator will prioritize nodes with higher-value data over nodes with
+lower-value data, so it is necessary to use __boost_bind__ to generate the
+appropriate comparator by switching the arguments to `compare`.
+
+[impl__cartesian_sort__breadth_first_iterate_with_priority]
+[endsect]
+
+[endsect] [/ breadth_first_iterator]
+
Added: sandbox/tree_node/libs/tree_node/doc/ref_can_use_fusion.qbk
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ sandbox/tree_node/libs/tree_node/doc/ref_can_use_fusion.qbk	2013-07-07 14:52:52 EDT (Sun, 07 Jul 2013)	(r84977)
@@ -0,0 +1,23 @@
+[/=============================================================================
+    Copyright (C) 2013 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:can_use_fusion `BOOST_TREE_NODE_CAN_USE_FUSION`]
+
+[section Description]
+Defined only if the compiler supports __enable_if__ and partial specialization
+of templates.
+[endsect]
+
+[section:definition Where defined]
+``
+#include <__preprocessor__header__>
+``
+[endsect]
+
+[endsect] [/ BOOST_TREE_NODE_CAN_USE_FUSION]
+
Added: sandbox/tree_node/libs/tree_node/doc/ref_can_use_fusion_w_typeof.qbk
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ sandbox/tree_node/libs/tree_node/doc/ref_can_use_fusion_w_typeof.qbk	2013-07-07 14:52:52 EDT (Sun, 07 Jul 2013)	(r84977)
@@ -0,0 +1,25 @@
+[/=============================================================================
+    Copyright (C) 2013 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:can_use_fusion_with_typeof
+    `BOOST_TREE_NODE_CAN_USE_FUSION_WITH_TYPEOF`
+]
+
+[section Description]
+Defined only if __TREE_NODE_CAN_USE_FUSION__ is defined and
+__TYPEOF_EMULATION__ is not.
+[endsect]
+
+[section:definition Where defined]
+``
+#include <__preprocessor__header__>
+``
+[endsect]
+
+[endsect] [/ BOOST_TREE_NODE_CAN_USE_FUSION_WITH_TYPEOF]
+
Added: sandbox/tree_node/libs/tree_node/doc/ref_cartesian_sort.qbk
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ sandbox/tree_node/libs/tree_node/doc/ref_cartesian_sort.qbk	2013-07-07 14:52:52 EDT (Sun, 07 Jul 2013)	(r84977)
@@ -0,0 +1,38 @@
+[/=============================================================================
+    Copyright (C) 2013 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:cartesian_sort `cartesian_sort()`]
+
+[section Synopsis]
+[reference__cartesian_sort]
+[endsect]
+
+[section Description]
+The `cartesian_sort()` function sorts the elements in `[itr_begin, itr_end)`
+into ascending order, meaning that if `i` and `j` are any two valid iterators
+in `[itr_begin, itr_end)` such that `i` precedes `j`, then `*j` is not less
+than `*i`.  The iterator type must fulfill the __Forward_Iterator__ concept,
+and its value type must be mutable.
+
+The `cartesian_sort()` function is not guaranteed to be stable.  That is, if
+`*i` and `*j` are equivalent, meaning neither one is less than the other, then
+it is not guaranteed that `cartesian_sort()` will preserve the relative order
+of these two elements.
+
+The first version compares objects using the __Strict_Weak_Ordering__ object
+`compare`.  The second version compares objects using the less-than operator.
+[endsect]
+
+[section:definition Where defined]
+``
+#include <__cartesian_sort__header__>
+``
+[endsect]
+
+[endsect] [/ cartesian_sort]
+
Added: sandbox/tree_node/libs/tree_node/doc/ref_cartesian_sort_range.qbk
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ sandbox/tree_node/libs/tree_node/doc/ref_cartesian_sort_range.qbk	2013-07-07 14:52:52 EDT (Sun, 07 Jul 2013)	(r84977)
@@ -0,0 +1,42 @@
+[/=============================================================================
+    Copyright (C) 2013 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:cartesian_sort_range `cartesian_sort_range()`]
+
+[section Synopsis]
+[reference__cartesian_sort_range]
+[endsect]
+
+[section Description]
+The `cartesian_sort_range()` function sorts the elements in the specified range
+into ascending order, meaning that if `i` and `j` are any two valid iterators
+in the specified range such that `i` precedes `j`, then `*j` is not less than
+`*i`.  The range type must fulfill the __Forward_Range__ concept, and it must
+be mutable.
+
+The `cartesian_sort_range()` function is not guaranteed to be stable.  That is,
+if `*i` and `*j` are equivalent, meaning neither one is less than the other,
+then it is not guaranteed that `cartesian_sort_range()` will preserve the
+relative order of these two elements.
+
+The first version compares objects using the __Strict_Weak_Ordering__ object
+`compare`.  The second version compares objects using the less-than operator.
+[endsect]
+
+[section:definition Where defined]
+``
+#include <__cartesian_sort__header__>
+``
+[endsect]
+
+[section Test]
+<__test_cartesian_sort_cpp__>
+[endsect]
+
+[endsect] [/ cartesian_sort_range]
+
Added: sandbox/tree_node/libs/tree_node/doc/ref_compare_selector.qbk
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ sandbox/tree_node/libs/tree_node/doc/ref_compare_selector.qbk	2013-07-07 14:52:52 EDT (Sun, 07 Jul 2013)	(r84977)
@@ -0,0 +1,180 @@
+[/=============================================================================
+    Copyright (C) 2013 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:compare_selector `compare_selector<Key>`]
+
+[section Synopsis]
+[reference__compare_selector]
+
+Forward declarations:
+
+[reference__compare_selector_fwd]
+[endsect]
+
+[section Description]
+Let `Node` be a (possibly `const`-qualified) __Tree_Node__ model.
+
+Let `NItr` be the pointer or iterator type of `Node`.
+
+Let `F` be a model of __Binary_Predicate__ that accepts
+[^_result_of__at_key_<Node,Key>::type] for both its arguments.
+
+Given the following:
+
+``
+    typedef _mpl_apply_wrap1_<compare_selector<Key>,NItr>::type G;
+
+    F f;
+    NItr x, y;
+    G g(f);
+``
+
+The type `G` is a model of __Adaptable_Binary_Predicate__ whose first and
+second arguments are both of type `NItr`.  The expression `g(x, y)` is
+equivalent to `f(get(*x, Key()), get(*y, Key()))` because the type `G` defines
+a conversion constructor that allows `g` to store the function `f`.
+
+This metafunction class is itself most useful as a `boost::compare_selector`
+template argument to __std_heap_selector__ or to one of the __Boost_Heap__
+selector types that are offered by __Boost_ContainerGen__ and are to be used
+in turn by __breadth_first_iterator__ or __breadth_first_descendant_iterator__
+when order by data matters.
+[endsect]
+
+[section:definition Where defined]
+``
+#include <__compare_selector__header__>
+``
+
+Forward-declared:
+
+``
+#include <__compare_selector__forward_header__>
+``
+
+To register under __Boost_Typeof__:
+
+``
+#include <__compare_selector__typeof_header__>
+``
+[endsect]
+
+[section:tpl_param Template Parameters]
+[table
+    [[Parameter][Description][Default]]
+    [
+        [`Key`]
+        [
+            The template argument type used to access the data by which the
+            return type of this metafunction class will compare __Tree_Node__
+            objects.
+        ]
+        [__data_key__]
+    ]
+]
+[endsect]
+
+[section:model_of Model of]
+__Unary_Metafunction_Class__
+[endsect]
+
+[section:rt_members Return Type Members]
+[table
+    [[Name][Expression][Description][Type requirements]]
+    [
+        [Result type]
+        [``
+            typedef bool result_type;
+        ``]
+        [Defined by the __Adaptable_Binary_Predicate__ concept.]
+        []
+    ]
+    [
+        [First argument type]
+        [``
+            typedef NItr first_argument_type;
+        ``]
+        [Defined by the __Adaptable_Binary_Predicate__ concept.]
+        []
+    ]
+    [
+        [Second argument type]
+        [``
+            typedef NItr second_argument_type;
+        ``]
+        [Defined by the __Adaptable_Binary_Predicate__ concept.]
+        []
+    ]
+    [
+        [Default constructor]
+        [``
+            type();
+        ``]
+        [
+            Stores an instance of type
+            [^_std_less_<_result_of__at_key_<Node,Key>::type>] that the
+            function call operator will use to compare `Node` data.
+        ]
+        [
+            [^_result_of__at_key_<Node,Key>::type] must model the
+            __Less_Than_Comparable__ concept.
+        ]
+    ]
+    [
+        [Constructor from comparator]
+        [``
+            template <typename Function>
+            type(Function const&);
+        ``]
+        [
+            Stores the specified comparator that the function call operator
+            will use to compare `Node` data. 
+        ]
+        [
+            `Function` must be a model of __Binary_Predicate__ that accepts
+            [^_result_of__at_key_<Node,Key>::type] for both its arguments.
+        ]
+    ]
+    [
+        [Copy constructor]
+        [``
+            type(type const&);
+        ``]
+        [Defined by the __Copy_Constructible__ concept.]
+        []
+    ]
+    [
+        [Assignment operator]
+        [``
+            type& operator=(type const&);
+        ``]
+        [Defined by the __Assignable__ concept.]
+        []
+    ]
+    [
+        [Function call operator]
+        [``
+            result_type
+                operator()(
+                    first_argument_type x
+                  , second_argument_type y
+                ) const;
+        ``]
+        [
+            Equivalent to `f(get(*x, Key()), get(*y, Key()))`, where `f` is the
+            function that was passed in to the constructor, or an instance of
+            type [^_std_less_<_result_of__at_key_<Node,Key>::type>] if this
+            function object was default-constructed.  Required by the
+            __Adaptable_Binary_Predicate__ concept.
+        ]
+    ]
+]
+[endsect] [/ Return Type Members]
+
+[endsect] [/ compare_selector]
+
Added: sandbox/tree_node/libs/tree_node/doc/ref_container_derived_body.qbk
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ sandbox/tree_node/libs/tree_node/doc/ref_container_derived_body.qbk	2013-07-07 14:52:52 EDT (Sun, 07 Jul 2013)	(r84977)
@@ -0,0 +1,45 @@
+[/=============================================================================
+    Copyright (C) 2013 Cromwell D. Enage
+
+    Distributed under the Boost Software License, Version 1.0.
+    (See accompanying file LICENSE_1_0.txt or copy at
+    [@http://www.boost.org/LICENSE_1_0.txt])
+=============================================================================/]
+
+[section:container_derived_body `BOOST_TREE_NODE_CONTAINER_DERIVED_BODY`]
+
+[section Synopsis]
+[reference__macro__container_derived_body]
+[endsect]
+
+[section Description]
+Meant to be used in the `public` scope of a __Container__ model that inherits
+from another.
+
+This macro defines the type definitions; the default, copy, and move
+constructors; and the copy and move assignment operators necessary for the
+`Derived` class to model the __Default_Constructible__, __Copy_Constructible__,
+__Assignable__, __Movable__, and __Container__ concepts.  
+[endsect]
+
+[section Usage]
+``
+BOOST_TREE_NODE_CONTAINER_DERIVED_BODY(Derived, Base)
+``
+[endsect]
+
+[section Arguments]
+[variablelist Notation
+    [[`Derived`][The name of the enclosing type.]]
+    [[`Base`][The name of the type from which `Derived` inherits.]]
+]
+[endsect]
+
+[section:definition Where defined]
+``
+#include <__preprocessor__header__>
+``
+[endsect]
+
+[endsect] [/ BOOST_TREE_NODE_CONTAINER_DERIVED_BODY]
+
Added: sandbox/tree_node/libs/tree_node/doc/ref_copyable_and_movable.qbk
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ sandbox/tree_node/libs/tree_node/doc/ref_copyable_and_movable.qbk	2013-07-07 14:52:52 EDT (Sun, 07 Jul 2013)	(r84977)
@@ -0,0 +1,44 @@
+[/=============================================================================
+    Copyright (C) 2012-2013 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:copyable_and_movable `BOOST_TREE_NODE_COPYABLE_AND_MOVABLE`]
+
+[section Synopsis]
+[reference__macro__copy_constructible]
+[reference__macro__copyable_and_movable]
+[endsect]
+
+[section Description]
+Meant to be used in the `public` scope of a __Tree_Node__ model that inherits
+from a __Base_Tree_Node__, this macro defines the copy and move constructors
+and the copy and move assignment operators necessary for the `Derived` class
+to model the __Copyable_Tree_Node__, __Movable_Tree_Node__, __Assignable__, and
+__Movable__ concepts.  
+[endsect]
+
+[section Usage]
+``
+BOOST_TREE_NODE_COPYABLE_AND_MOVABLE(Derived, Base)
+``
+[endsect]
+
+[section Arguments]
+[variablelist Notation
+    [[`Derived`][The name of the enclosing type.]]
+    [[`Base`][The name of the type from which `Derived` inherits.]]
+]
+[endsect]
+
+[section:definition Where defined]
+``
+#include <__preprocessor__header__>
+``
+[endsect]
+
+[endsect] [/ BOOST_TREE_NODE_COPYABLE_AND_MOVABLE]
+
Added: sandbox/tree_node/libs/tree_node/doc/ref_count_key.qbk
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ sandbox/tree_node/libs/tree_node/doc/ref_count_key.qbk	2013-07-07 14:52:52 EDT (Sun, 07 Jul 2013)	(r84977)
@@ -0,0 +1,34 @@
+[/=============================================================================
+    Copyright (C) 2013 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:count_key `count_key`]
+
+[section Synopsis]
+[reference__count_key]
+[endsect]
+
+[section Description]
+Use this type to access the number of each __Tree_Node__ object plus its
+descendants, the sum of which is known as the [*count] of the node.  The
+__Tree_Node__ type must ultimately inherit from __tree_node_with_count_base__.
+[endsect]
+
+[section:definition Where defined]
+``
+#include <__count_key__header__>
+``
+
+To register under __Boost_Typeof__:
+
+``
+#include <__count_key__typeof_header__>
+``
+[endsect]
+
+[endsect] [/ count_key]
+
Added: sandbox/tree_node/libs/tree_node/doc/ref_data_key.qbk
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ sandbox/tree_node/libs/tree_node/doc/ref_data_key.qbk	2013-07-07 14:52:52 EDT (Sun, 07 Jul 2013)	(r84977)
@@ -0,0 +1,32 @@
+[/=============================================================================
+    Copyright (C) 2013 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:data_key `data_key`]
+
+[section Synopsis]
+[reference__data_key]
+[endsect]
+
+[section Description]
+Use this type to access the user data stored in __Tree_Node__ objects.
+[endsect]
+
+[section:definition Where defined]
+``
+#include <__data_key__header__>
+``
+
+To register under __Boost_Typeof__:
+
+``
+#include <__data_key__typeof_header__>
+``
+[endsect]
+
+[endsect] [/ data_key]
+
Added: sandbox/tree_node/libs/tree_node/doc/ref_depth_first_desc_iter.qbk
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ sandbox/tree_node/libs/tree_node/doc/ref_depth_first_desc_iter.qbk	2013-07-07 14:52:52 EDT (Sun, 07 Jul 2013)	(r84977)
@@ -0,0 +1,346 @@
+[/=============================================================================
+    Copyright (C) 2011-2013 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_desc_iter
+    `depth_first_descendant_iterator<Node,IsReverse>`
+]
+
+[section Synopsis]
+[reference__depth_first_descendant_iterator]
+[endsect]
+
+[section Description]
+This iterator traverses the descendants of the root node passed to
+its constructor in depth-first fashion, e.g. given the following
+tree representation:
+
+``
+      A
+      |
+  C---+---B
+  |       |
++-+-+   +-+-+
+|   |   |   |
+D   E   F   G
+``
+
+By default, this iterator 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 can also be used to traverse the tree nodes in reverse:
+
+``
+B  post_order_traversal
+G  post_order_traversal
+G  pre_order_traversal
+F  post_order_traversal
+F  pre_order_traversal
+B  pre_order_traversal
+C  post_order_traversal
+E  post_order_traversal
+E  pre_order_traversal
+D  post_order_traversal
+D  pre_order_traversal
+C  pre_order_traversal
+``
+
+This iterator is ideal for algorithms that need to perform both preprocessing
+and postprocessing of a tree node, e.g. non-recursive copy constructors.
+[endsect]
+
+[section:definition Where defined]
+``
+#include <__depth_first_descendant_iterator__header__>
+``
+
+To register under __Boost_Typeof__:
+
+``
+#include <__depth_first_descendant_iterator__typeof_header__>
+``
+[endsect]
+
+[section:tpl_param Template Parameters]
+[table
+    [[Parameter][Description][Requirements][Default]]
+    [
+        [`Node`]
+        [The type of a tree node.]
+        [
+            It must model the __Tree_Node__ concept, but it can be
+            `const`-qualified.
+        ]
+        []
+    ]
+    [
+        [`IsReverse`]
+        [
+            Configures the `depth_first_descendant_iterator` to traverse tree
+            nodes in reverse depth-first fashion if equivalent to __mpl_true__;
+            otherwise, the nodes will be traversed in depth-first fashion.
+        ]
+        [It must model the __Boolean_Integral_Constant__ concept.]
+        [__mpl_false__]
+    ]
+]
+[endsect]
+
+[section:model_of Model of]
+[itemized_list
+    [__Tree_Node_Descendant_Iterator__]
+    [__Bidirectional_Iterator__]
+    [__Default_Constructible__]
+    [__Copy_Constructible__]
+    [__Assignable__]
+]
+[endsect]
+
+[section Members]
+[table
+    [[Name][Expression][Description][Type requirements]]
+    [
+        [Value type]
+        [``
+            typedef ... value_type;
+        ``]
+        [Defined by the __Tree_Node_Descendant_Iterator__ concept.]
+        []
+    ]
+    [
+        [Reference type]
+        [``
+            typedef ... reference;
+        ``]
+        [Defined by the __Forward_Iterator__ concept.]
+        []
+    ]
+    [
+        [Pointer type]
+        [``
+            typedef ... pointer;
+        ``]
+        [Defined by the __Forward_Iterator__ concept.]
+        []
+    ]
+    [
+        [Distance type]
+        [``
+            typedef ... difference_type;
+        ``]
+        [Defined by the __Forward_Iterator__ concept.]
+        []
+    ]
+    [
+        [Iterator category]
+        [``
+            typedef ... iterator_category;
+        ``]
+        [Defined by the __Forward_Iterator__ concept.]
+        []
+    ]
+    [
+        [Default constructor]
+        [``
+            depth_first_descendant_iterator();
+        ``]
+        [
+            Sets this iterator past-the-end.  Required by the
+            __Default_Constructible__ concept.
+        ]
+        []
+    ]
+    [
+        [Constructor from node]
+        [``
+            depth_first_descendant_iterator(Node&);
+        ``]
+        [Defined by the __Tree_Node_Descendant_Iterator__ concept.]
+        []
+    ]
+    [
+        [Conversion constructor]
+        [``
+            template <typename N, typename I>
+            depth_first_descendant_iterator(
+                depth_first_descendant_iterator<N,I> const&
+            );
+        ``]
+        [
+            Constructs this iterator as a copy of the specified one so that the
+            current node is of type `Node`.
+        ]
+        [
+            [^_tr1_is_convertible_<N,Node>] must evaluate to __tr1_true_type__,
+            and [^_mpl_equal_to_<I,IsReverse>] must evaluate to __mpl_true__.
+        ]
+    ]
+    [
+        [Copy constructor]
+        [``
+            depth_first_descendant_iterator(
+                depth_first_descendant_iterator const&
+            );
+        ``]
+        [Defined by the __Copy_Constructible__ concept.]
+        []
+    ]
+    [
+        [Assignment operator]
+        [``
+            depth_first_descendant_iterator&
+                operator=(depth_first_descendant_iterator const&);
+        ``]
+        [Defined by the __Assignable__ concept.]
+        []
+    ]
+    [
+        [Dereference operator]
+        [``
+            reference operator*() const;
+        ``]
+        [
+            If the `Node` type models the __Associative_Tree_Node__ concept,
+            returns an object whose `first` member refers to the key that is
+            associated with the current node.  If the `Node` type models
+            the __Non_Associative_Tree_Node__ concept, returns the current
+            node.  Required by the __Forward_Iterator__ concept.
+        ]
+        []
+    ]
+    [
+        [Indirection operator]
+        [``
+            pointer operator->() const;
+        ``]
+        [
+            If the `Node` type models the __Associative_Tree_Node__ concept,
+            returns a pointer to the object whose `first` member refers to the
+            key associated with the current node.  If the `Node` type models
+            the __Non_Associative_Tree_Node__ concept, returns a pointer to
+            the current node.  Required by the __Forward_Iterator__ concept.
+        ]
+        []
+    ]
+    [
+        [Pre-increment operator]
+        [``
+            depth_first_descendant_iterator& operator++();
+        ``]
+        [
+            If `IsReverse` evaluates to __mpl_true__, points this iterator
+            to the next node in the reverse depth-first traversal of the
+            descenants of the root node that was passed into the constructor;
+            otherwise, points this iterator to the next node in the depth-first
+            traversal of the descendants of the root node that was passed into
+            the constructor.  Returns this iterator.  Required by the
+            __Forward_Iterator__ concept.
+        ]
+        []
+    ]
+    [
+        [Post-increment operator]
+        [``
+            depth_first_descendant_iterator operator++(int);
+        ``]
+        [
+            If `IsReverse` evaluates to __mpl_true__, points this iterator
+            to the next node in the reverse depth-first traversal of the
+            descenants of the root node that was passed into the constructor;
+            otherwise, points this iterator to the next node in the depth-first
+            traversal of the descendants of the root node that was passed into
+            the constructor.  Returns a new iterator pointing to the (previous)
+            current node.  Required by the __Forward_Iterator__ concept.
+        ]
+        []
+    ]
+    [
+        [Pre-decrement operator]
+        [``
+            depth_first_descendant_iterator& operator--();
+        ``]
+        [
+            If `IsReverse` evaluates to __mpl_true__, points this iterator to
+            the previous node in the reverse depth-first traversal of the
+            descendants of the root node that was passed into the constructor;
+            otherwise, points this iterator to the previous node in the
+            depth-first traversal of the descendants of the root node that was
+            passed into the constructor.  Returns this iterator.  Required by
+            the __Bidirectional_Iterator__ concept.
+        ]
+        []
+    ]
+    [
+        [Post-decrement operator]
+        [``
+            depth_first_descendant_iterator operator--(int);
+        ``]
+        [
+            If `IsReverse` evaluates to __mpl_true__, points this iterator to
+            the previous node in the reverse depth-first traversal of the
+            descendants of the root node that was passed into the constructor;
+            otherwise, points this iterator to the previous node in the
+            depth-first traversal of the descendants of the root node that was
+            passed into the constructor.  Returns a new iterator pointing to
+            the (previous) current node.  Required by the
+            __Bidirectional_Iterator__ concept.
+        ]
+        []
+    ]
+    [
+        [Traversal state conversion operator]
+        [``
+            operator _traversal_state_() const;
+        ``]
+        [Defined by the __Tree_Node_Iterator__ concept.]
+        []
+    ]
+]
+[endsect] [/ Members]
+
+[section:non_members Non-members]
+[table
+    [[Name][Definition][Description]]
+    [
+        [Iterator creation]
+        [[reference__make_depth_first_descendant_iterator]]
+        [
+            Constructs and returns a `depth_first_descendant_iterator` that
+            will iterate through the descendants of the specified node.
+        ]
+    ]
+    [
+        [Iteration]
+        [[reference__make_depth_first_descendant_reverse_iterator]]
+        [
+            Constructs and returns a `depth_first_descendant_iterator` that
+            will iterate through the descendants of the specified node in
+            reverse order.
+        ]
+    ]
+]
+[endsect]
+
+[endsect] [/ depth_first_descendant_iterator]
+
Added: sandbox/tree_node/libs/tree_node/doc/ref_depth_first_iterator.qbk
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ sandbox/tree_node/libs/tree_node/doc/ref_depth_first_iterator.qbk	2013-07-07 14:52:52 EDT (Sun, 07 Jul 2013)	(r84977)
@@ -0,0 +1,332 @@
+[/=============================================================================
+    Copyright (C) 2011-2013 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<Node,IsReverse>`]
+
+[section Synopsis]
+[reference__depth_first_iterator]
+[endsect]
+
+[section Description]
+This iterator traverses the root node passed to its constructor--and all
+its descendants--in depth-first fashion, e.g. given the following tree
+representation:
+
+``
+      A
+      |
+  C---+---B
+  |       |
++-+-+   +-+-+
+|   |   |   |
+D   E   F   G
+``
+
+By default, this iterator 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
+``
+
+The traversal state conversion operator of this iterator will yield each value
+in the column on the right at the appropriate iteration.
+
+This iterator can also be used to traverse the tree nodes in reverse:
+
+``
+A  post_order_traversal
+B  post_order_traversal
+G  post_order_traversal
+G  pre_order_traversal
+F  post_order_traversal
+F  pre_order_traversal
+B  pre_order_traversal
+C  post_order_traversal
+E  post_order_traversal
+E  pre_order_traversal
+D  post_order_traversal
+D  pre_order_traversal
+C  pre_order_traversal
+A  pre_order_traversal
+``
+
+This iterator is ideal for algorithms that need to perform both preprocessing
+and postprocessing of a tree node.
+[endsect]
+
+[section:definition Where defined]
+``
+#include <__depth_first_iterator__header__>
+``
+
+To register under __Boost_Typeof__:
+
+``
+#include <__depth_first_iterator__typeof_header__>
+``
+[endsect]
+
+[section:tpl_param Template Parameters]
+[table
+    [[Parameter][Description][Requirements][Default]]
+    [
+        [`Node`]
+        [The type of a tree node.]
+        [
+            It must model the __Tree_Node__ concept, but it can be
+            `const`-qualified.
+        ]
+        []
+    ]
+    [
+        [`IsReverse`]
+        [
+            Configures the `depth_first_iterator` to traverse tree nodes in
+            reverse depth-first fashion if equivalent to __mpl_true__;
+            otherwise, the nodes will be traversed in depth-first fashion.
+        ]
+        [It must model the __Boolean_Integral_Constant__ concept.]
+        [__mpl_false__]
+    ]
+]
+[endsect]
+
+[section:model_of Model of]
+[itemized_list
+    [__Full_Tree_Node_Iterator__]
+    [__Bidirectional_Iterator__]
+    [__Default_Constructible__]
+    [__Copy_Constructible__]
+    [__Assignable__]
+]
+[endsect]
+
+[section Members]
+[table
+    [[Name][Expression][Description][Type requirements]]
+    [
+        [Value type]
+        [``
+            typedef ... value_type;
+        ``]
+        [Defined by the __Full_Tree_Node_Iterator__ concept.]
+        []
+    ]
+    [
+        [Reference type]
+        [``
+            typedef ... reference;
+        ``]
+        [Defined by the __Forward_Iterator__ concept.]
+        []
+    ]
+    [
+        [Pointer type]
+        [``
+            typedef ... pointer;
+        ``]
+        [Defined by the __Forward_Iterator__ concept.]
+        []
+    ]
+    [
+        [Distance type]
+        [``
+            typedef ... difference_type;
+        ``]
+        [Defined by the __Forward_Iterator__ concept.]
+        []
+    ]
+    [
+        [Iterator category]
+        [``
+            typedef ... iterator_category;
+        ``]
+        [Defined by the __Forward_Iterator__ concept.]
+        []
+    ]
+    [
+        [Default constructor]
+        [``
+            depth_first_iterator();
+        ``]
+        [
+            Sets this iterator past-the-end.  Required by the
+            __Default_Constructible__ concept.
+        ]
+        []
+    ]
+    [
+        [Constructor from node]
+        [``
+            depth_first_iterator(Node&);
+        ``]
+        [Defined by the __Full_Tree_Node_Iterator__ concept.]
+        []
+    ]
+    [
+        [Conversion constructor]
+        [``
+            template <typename N, typename I>
+            depth_first_iterator(depth_first_iterator<N,I> const&);
+        ``]
+        [
+            Constructs this iterator as a copy of the specified one so that the
+            current node is of type `Node`.
+        ]
+        [
+            [^_tr1_is_convertible_<N,Node>] must evaluate to __tr1_true_type__,
+            and [^_mpl_equal_to_<I,IsReverse>] must evaluate to __mpl_true__.
+        ]
+    ]
+    [
+        [Copy constructor]
+        [``
+            depth_first_iterator(depth_first_iterator const&);
+        ``]
+        [Defined by the __Copy_Constructible__ concept.]
+        []
+    ]
+    [
+        [Assignment operator]
+        [``
+            depth_first_iterator& operator=(depth_first_iterator const&);
+        ``]
+        [Defined by the __Assignable__ concept.]
+        []
+    ]
+    [
+        [Dereference operator]
+        [``
+            reference operator*() const;
+        ``]
+        [
+            Returns the current node.  Required by the __Forward_Iterator__
+            concept.
+        ]
+    ]
+    [
+        [Indirection operator]
+        [``
+            pointer operator->() const;
+        ``]
+        [
+            Returns a pointer to the current node.  Required by the
+            __Forward_Iterator__ concept.
+        ]
+        []
+    ]
+    [
+        [Pre-increment operator]
+        [``
+            depth_first_iterator& operator++();
+        ``]
+        [
+            If `IsReverse` evaluates to __mpl_true__, points this iterator to
+            the next node in the reverse depth-first traversal of the tree
+            whose root node was passed into the constructor; otherwise, points
+            this iterator to the next node in the depth-first traversal of the
+            tree whose root node was passed into the constructor.  Returns this
+            iterator.  Required by the __Forward_Iterator__ concept.
+        ]
+        []
+    ]
+    [
+        [Post-increment operator]
+        [``
+            depth_first_iterator operator++(int);
+        ``]
+        [
+            If `IsReverse` evaluates to __mpl_true__, points this iterator to
+            the next node in the reverse depth-first traversal of the tree
+            whose root node was passed into the constructor; otherwise, points
+            this iterator to the next node in the depth-first traversal of the
+            tree whose root node was passed into the constructor.  Returns a
+            new iterator pointing to the (previous) current node.  Required by
+            the __Forward_Iterator__ concept.
+        ]
+        []
+    ]
+    [
+        [Pre-decrement operator]
+        [``
+            depth_first_iterator& operator--();
+        ``]
+        [
+            If `IsReverse` evaluates to __mpl_true__, points this iterator to
+            the previous node in the reverse depth-first traversal of the tree
+            whose root node was passed into the constructor; otherwise, points
+            this iterator to the previous node in the depth-first traversal of
+            the tree whose root node was passed into the constructor.  Returns
+            this iterator.  Required by the __Bidirectional_Iterator__ concept.
+        ]
+        []
+    ]
+    [
+        [Post-decrement operator]
+        [``
+            depth_first_iterator operator--(int);
+        ``]
+        [
+            If `IsReverse` evaluates to __mpl_true__, points this iterator to
+            the previous node in the reverse depth-first traversal of the tree
+            whose root node was passed into the constructor; otherwise, points
+            this iterator to the previous node in the depth-first traversal of
+            the tree whose root node was passed into the constructor.  Returns
+            a new iterator pointing to the (next) current node.  Required by
+            the __Bidirectional_Iterator__ concept.
+        ]
+        []
+    ]
+    [
+        [Traversal state conversion operator]
+        [``
+            operator _traversal_state_() const;
+        ``]
+        [Defined by the __Tree_Node_Iterator__ concept.]
+        []
+    ]
+]
+[endsect] [/ Members]
+
+[section:non_members Non-members]
+[table
+    [[Name][Expression][Description]]
+    [
+        [Iterator creation]
+        [[reference__make_depth_first_iterator]]
+        [
+            Constructs and returns a `depth_first_iterator` that will iterate
+            through the specified node and its descendants.
+        ]
+    ]
+    [
+        [Reverse iterator creation]
+        [[reference__make_depth_first_reverse_iterator]]
+        [
+            Constructs and returns a `depth_first_iterator` that will iterate
+            through the specified node and its descendants in reverse order.
+        ]
+    ]
+]
+[endsect]
+
+[endsect] [/ depth_first_iterator]
+
Added: sandbox/tree_node/libs/tree_node/doc/ref_dereference_iterator.qbk
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ sandbox/tree_node/libs/tree_node/doc/ref_dereference_iterator.qbk	2013-07-07 14:52:52 EDT (Sun, 07 Jul 2013)	(r84977)
@@ -0,0 +1,46 @@
+[/=============================================================================
+    Copyright (C) 2011-2013 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:dereference_iterator `dereference_iterator()`]
+
+[section:func_synopsis Function Synopsis]
+[reference__tree_node__dereference_iterator]
+[endsect]
+
+[section:func_description Function Description]
+This function takes in a __Tree_Node_Iterator__ and returns the __Tree_Node__
+to which it currently points.  In terms of genericity, this function is
+necessary not only because it handles both __Full_Tree_Node_Iterator__ and
+__Tree_Node_Descendant_Iterator__ models, but because the iterator interface of
+associative __Boost_Pointer_Container__ types is different from that of their
+standard library counterparts.
+[endsect]
+
+[section:result_of Return Type Metafunction Synopsis]
+[reference__tree_node__result_of__dereference_iterator]
+[endsect]
+
+[section:result_of_description Return Type Metafunction Description]
+Let `Itr` be a __Tree_Node_Iterator__ model.
+
+``
+    typedef dereference_iterator<Itr>::type r;
+``
+
+[*Return type:] A __Fusion_Sequence__ of __half_runtime_pairs__ of key types
+and their matching value types as defined by the specified node type.
+[endsect]
+
+[section:definition Where defined]
+``
+#include <__dereference_iterator__header__>
+``
+[endsect]
+
+[endsect] [/ dereference_iterator]
+
Added: sandbox/tree_node/libs/tree_node/doc/ref_empl_ctor_w_allc_f_decl.qbk
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ sandbox/tree_node/libs/tree_node/doc/ref_empl_ctor_w_allc_f_decl.qbk	2013-07-07 14:52:52 EDT (Sun, 07 Jul 2013)	(r84977)
@@ -0,0 +1,70 @@
+[/=============================================================================
+    Copyright (C) 2013 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:emplace_ctor_w_alloc_f_dcl
+    `BOOST_TREE_NODE_EMPLACEMENT_CTOR_W_ALLOC_FWD_DECL`
+]
+
+[section Synopsis]
+[reference__macro__emplacement_ctor_w_alloc_header]
+[reference__macro__emplacement_ctor_w_alloc_fwd_decl]
+[endsect]
+
+[section Description]
+Defined only if the compiler does not support perfect forwarding, and meant to
+be used in the `public` scope of a __Base_Tree_Node__, this macro expands to
+the forward declaration of a constructor that will emulate it.
+[endsect]
+
+[section Usage]
+``
+class some_node_type
+{
+ public:
+    typedef unspecified traits;
+
+#if defined BOOST_CONTAINER_PERFECT_FORWARDING
+    template <typename ...Args>
+    explicit some_node_type(
+        boost::container::allocator_arg_t
+      , typename traits::allocator_reference allocator
+      , Args&& ...args
+    );
+#else
+    _PP_REPEAT_(
+        BOOST_CONTAINER_MAX_CONSTRUCTOR_PARAMETERS
+      , BOOST_TREE_NODE_EMPLACEMENT_CTOR_W_ALLOC_FWD_DECL
+      , some_node_type
+    )
+#endif
+};
+``
+[endsect]
+
+[section Arguments]
+[variablelist Notation
+    [[`z`][The next available __PP_REPEAT__ dimension.]]
+    [
+        [`n`]
+        [
+            The number of arguments that the current iteration's constructor
+            will accept.
+        ]
+    ]
+    [[`Type`][The name of the enclosing type.]]
+]
+[endsect]
+
+[section:definition Where defined]
+``
+#include <__preprocessor__header__>
+``
+[endsect]
+
+[endsect] [/ BOOST_TREE_NODE_EMPLACEMENT_CTOR_W_ALLOC_FWD_DECL]
+
Added: sandbox/tree_node/libs/tree_node/doc/ref_empl_ctor_w_allc_il_def.qbk
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ sandbox/tree_node/libs/tree_node/doc/ref_empl_ctor_w_allc_il_def.qbk	2013-07-07 14:52:52 EDT (Sun, 07 Jul 2013)	(r84977)
@@ -0,0 +1,71 @@
+[/=============================================================================
+    Copyright (C) 2013 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:emplace_ctor_w_alloc_i_def
+    `BOOST_TREE_NODE_EMPLACEMENT_CTOR_W_ALLOC_INLINE_DEF`
+]
+
+[section Synopsis]
+[reference__macro__emplacement_ctor_w_alloc_inline_def]
+[endsect]
+
+[section Description]
+Defined only if the compiler does not support perfect forwarding, and meant to
+be used in the `public` scope of a __Tree_Node__ model that inherits from a
+__Base_Tree_Node__ and defines no additional members, this macro expands to the
+inline definition of a constructor that will emulate it.  Uses
+__TREE_NODE_EMPLACEMENT_CTOR_W_ALLOC_INLINE_HEADER__.
+[endsect]
+
+[section Usage]
+``
+class Derived : public Base
+{
+ public:
+    typedef typename Base::traits traits;
+
+#if defined BOOST_CONTAINER_PERFECT_FORWARDING
+    template <typename ...Args>
+    inline explicit Derived(
+        boost::container::allocator_arg_t
+      , typename traits::allocator_reference allocator
+      , Args&& ...args
+    ) : Base(
+            boost::container::allocator_arg
+          , allocator
+          , boost::forward<Args>(args)...
+        )
+    {
+        Base::on_post_emplacement_construct();
+    }
+#else
+    _PP_REPEAT_(
+        BOOST_CONTAINER_MAX_CONSTRUCTOR_PARAMETERS
+      , BOOST_TREE_NODE_EMPLACEMENT_CTOR_W_ALLOC_INLINE_DEF
+      , (Derived, Base)
+    )
+#endif
+};
+``
+[endsect]
+
+[section Arguments]
+[variablelist Notation
+    [[`Derived`][The name of the enclosing type.]]
+    [[`Base`][The name of the type from which `Derived` inherits.]]
+]
+[endsect]
+
+[section:definition Where defined]
+``
+#include <__preprocessor__header__>
+``
+[endsect]
+
+[endsect] [/ BOOST_TREE_NODE_EMPLACEMENT_CTOR_INLINE_DEF]
+
Added: sandbox/tree_node/libs/tree_node/doc/ref_empl_ctor_w_allc_il_hdr.qbk
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ sandbox/tree_node/libs/tree_node/doc/ref_empl_ctor_w_allc_il_hdr.qbk	2013-07-07 14:52:52 EDT (Sun, 07 Jul 2013)	(r84977)
@@ -0,0 +1,90 @@
+[/=============================================================================
+    Copyright (C) 2013 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:emplace_ctor_w_alloc_i_hdr
+    `BOOST_TREE_NODE_EMPLACEMENT_CTOR_W_ALLOC_INLINE_HEADER`
+]
+
+[section Synopsis]
+[reference__macro__emplacement_ctor_w_alloc_header]
+[reference__macro__emplacement_ctor_w_alloc_base_fwd]
+[reference__macro__emplacement_ctor_w_alloc_inline_header]
+[endsect]
+
+[section Description]
+Defined only if the compiler does not support perfect forwarding, this macro
+expands to the header of a constructor that emulates it along witht the first
+part of its initialization list.
+[endsect]
+
+[section Usage]
+``
+class Derived : public Base
+{
+    int some_member;
+
+    void post_construct(int);
+
+ public:
+#if defined BOOST_CONTAINER_PERFECT_FORWARDING
+    template <typename ...Args>
+    inline explicit Derived(
+        boost::container::allocator_arg_t
+      , typename traits::allocator_reference allocator
+      , Args&& ...args
+    ) : Base(
+            boost::container::allocator_arg
+          , allocator
+          , boost::forward<Args>(args)...
+        )
+      , some_member(0)
+    {
+        this->post_construct(this->some_member);
+    }
+#else
+#define YOUR_MACRO(z, n, Tuple) \
+    BOOST_TREE_NODE_EMPLACEMENT_CTOR_W_ALLOC_INLINE_HEADER(z, n, Tuple) \
+      , some_member(0) \
+    { \
+        this->post_construct(this->some_member); \
+    } \
+//!
+    _PP_REPEAT_(
+        BOOST_CONTAINER_MAX_CONSTRUCTOR_PARAMETERS
+      , YOUR_MACRO
+      , (Derived, Base)
+    )
+#undef YOUR_MACRO
+#endif
+};
+``
+[endsect]
+
+[section Arguments]
+[variablelist Notation
+    [[`z`][The next available __PP_REPEAT__ dimension.]]
+    [
+        [`n`]
+        [
+            The number of arguments that the current iteration's constructor
+            will accept.
+        ]
+    ]
+    [[`Derived`][The name of the enclosing type.]]
+    [[`Base`][The name of the type from which `Derived` inherits.]]
+]
+[endsect]
+
+[section:definition Where defined]
+``
+#include <__preprocessor__header__>
+``
+[endsect]
+
+[endsect] [/ BOOST_TREE_NODE_EMPLACEMENT_CTOR_W_ALLOC_INLINE_HEADER]
+
Added: sandbox/tree_node/libs/tree_node/doc/ref_emplace_ctor_fwd_decl.qbk
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ sandbox/tree_node/libs/tree_node/doc/ref_emplace_ctor_fwd_decl.qbk	2013-07-07 14:52:52 EDT (Sun, 07 Jul 2013)	(r84977)
@@ -0,0 +1,62 @@
+[/=============================================================================
+    Copyright (C) 2012-2013 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:emplace_ctor_fwd_decl `BOOST_TREE_NODE_EMPLACEMENT_CTOR_FWD_DECL`]
+
+[section Synopsis]
+[reference__macro__emplacement_ctor_header]
+[reference__macro__emplacement_ctor_fwd_decl]
+[endsect]
+
+[section Description]
+Defined only if the compiler does not support perfect forwarding, and meant to
+be used in the `public` scope of a __Base_Tree_Node__, this macro expands to
+the forward declaration of a constructor that will emulate it.
+[endsect]
+
+[section Usage]
+``
+class some_node_type
+{
+ public:
+#if defined BOOST_CONTAINER_PERFECT_FORWARDING
+    template <typename ...Args>
+    explicit some_node_type(Args&& ...args);
+#else
+    _PP_REPEAT_(
+        BOOST_CONTAINER_MAX_CONSTRUCTOR_PARAMETERS
+      , BOOST_TREE_NODE_EMPLACEMENT_CTOR_FWD_DECL
+      , some_node_type
+    )
+#endif
+};
+``
+[endsect]
+
+[section Arguments]
+[variablelist Notation
+    [[`z`][The next available __PP_REPEAT__ dimension.]]
+    [
+        [`n`]
+        [
+            The number of arguments that the current iteration's constructor
+            will accept.
+        ]
+    ]
+    [[`Type`][The name of the enclosing type.]]
+]
+[endsect]
+
+[section:definition Where defined]
+``
+#include <__preprocessor__header__>
+``
+[endsect]
+
+[endsect] [/ BOOST_TREE_NODE_EMPLACEMENT_CTOR_FWD_DECL]
+
Added: sandbox/tree_node/libs/tree_node/doc/ref_emplace_ctor_inline_def.qbk
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ sandbox/tree_node/libs/tree_node/doc/ref_emplace_ctor_inline_def.qbk	2013-07-07 14:52:52 EDT (Sun, 07 Jul 2013)	(r84977)
@@ -0,0 +1,68 @@
+[/=============================================================================
+    Copyright (C) 2012-2013 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:emplace_ctor_inline_def `BOOST_TREE_NODE_EMPLACEMENT_CTOR_INLINE_DEF`]
+
+[section Synopsis]
+[reference__macro__emplacement_ctor_inline_def]
+[endsect]
+
+[section Description]
+Defined only if the compiler does not support perfect forwarding, and meant to
+be used in the `public` scope of a __Tree_Node__ model that inherits from a
+__Base_Tree_Node__ and defines no additional members, this macro expands to the
+inline definition of a constructor that will emulate it.  Uses
+__TREE_NODE_EMPLACEMENT_CTOR_INLINE_HEADER__.
+[endsect]
+
+[section Usage]
+``
+class Derived : public Base
+{
+ public:
+#if defined BOOST_CONTAINER_PERFECT_FORWARDING
+    template <typename ...Args>
+    inline explicit Derived(Args&& ...args)
+      : Base(boost::forward<Args>(args)...)
+    {
+        Base::on_post_emplacement_construct();
+    }
+#else
+    _PP_REPEAT_(
+        BOOST_CONTAINER_MAX_CONSTRUCTOR_PARAMETERS
+      , BOOST_TREE_NODE_EMPLACEMENT_CTOR_INLINE_DEF
+      , (Derived, Base)
+    )
+#endif
+};
+``
+[endsect]
+
+[section Arguments]
+[variablelist Notation
+    [[`z`][The next available __PP_REPEAT__ dimension.]]
+    [
+        [`n`]
+        [
+            The number of arguments that the current iteration's constructor
+            will accept.
+        ]
+    ]
+    [[`Derived`][The name of the enclosing type.]]
+    [[`Base`][The name of the type from which `Derived` inherits.]]
+]
+[endsect]
+
+[section:definition Where defined]
+``
+#include <__preprocessor__header__>
+``
+[endsect]
+
+[endsect] [/ BOOST_TREE_NODE_EMPLACEMENT_CTOR_INLINE_DEF]
+
Added: sandbox/tree_node/libs/tree_node/doc/ref_emplace_ctor_inline_hdr.qbk
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ sandbox/tree_node/libs/tree_node/doc/ref_emplace_ctor_inline_hdr.qbk	2013-07-07 14:52:52 EDT (Sun, 07 Jul 2013)	(r84977)
@@ -0,0 +1,81 @@
+[/=============================================================================
+    Copyright (C) 2012-2013 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:emplace_ctor_inline_hdr `BOOST_TREE_NODE_EMPLACEMENT_CTOR_INLINE_HDR`]
+
+[section Synopsis]
+[reference__macro__emplacement_ctor_header]
+[reference__macro__emplacement_ctor_base_fwd]
+[reference__macro__emplacement_ctor_inline_header]
+[endsect]
+
+[section Description]
+Defined only if the compiler does not support perfect forwarding, this macro
+expands to the header of a constructor that emulates it along witht the first
+part of its initialization list.
+[endsect]
+
+[section Usage]
+``
+class Derived : public Base
+{
+    int some_member;
+
+    void post_construct(int);
+
+ public:
+#if defined BOOST_CONTAINER_PERFECT_FORWARDING
+    template <typename ...Args>
+    inline explicit Derived(Args&& ...args)
+      : Base(boost::forward<Args>(args)...)
+      , some_member(0)
+    {
+        this->post_construct(this->some_member);
+    }
+#else
+#define YOUR_MACRO(z, n, Tuple) \
+    BOOST_TREE_NODE_EMPLACEMENT_CTOR_INLINE_HEADER(z, n, Tuple) \
+      , some_member(0) \
+    { \
+        this->post_construct(this->some_member); \
+    } \
+//!
+    _PP_REPEAT_(
+        BOOST_CONTAINER_MAX_CONSTRUCTOR_PARAMETERS
+      , YOUR_MACRO
+      , (Derived, Base)
+    )
+#undef YOUR_MACRO
+#endif
+};
+``
+[endsect]
+
+[section Arguments]
+[variablelist Notation
+    [[`z`][The next available __PP_REPEAT__ dimension.]]
+    [
+        [`n`]
+        [
+            The number of arguments that the current iteration's constructor
+            will accept.
+        ]
+    ]
+    [[`Derived`][The name of the enclosing type.]]
+    [[`Base`][The name of the type from which `Derived` inherits.]]
+]
+[endsect]
+
+[section:definition Where defined]
+``
+#include <__preprocessor__header__>
+``
+[endsect]
+
+[endsect] [/ BOOST_TREE_NODE_EMPLACEMENT_CTOR_INLINE_HDR]
+
Added: sandbox/tree_node/libs/tree_node/doc/ref_get_keys.qbk
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ sandbox/tree_node/libs/tree_node/doc/ref_get_keys.qbk	2013-07-07 14:52:52 EDT (Sun, 07 Jul 2013)	(r84977)
@@ -0,0 +1,34 @@
+[/=============================================================================
+    Copyright (C) 2013 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:get_keys `result_of::get_keys<Node>`]
+
+[section Synopsis]
+[reference__tree_node__result_of__get_keys]
+[endsect]
+
+[section Description]
+Let `Node` be a (possibly `const`-qualified) __Tree_Node__ model.
+
+``
+    typedef result_of::get_keys<Node>::type r;
+``
+
+[*Return type:] A __Fusion_Sequence__ of key types--each of which, when passed
+along with `Node` as template arguments to __result_of__has_key__, will cause
+__result_of__has_key__ to evaluate to __mpl_true__.
+[endsect]
+
+[section:definition Where defined]
+``
+#include <__get_keys__header__>
+``
+[endsect]
+
+[endsect] [/ get_keys]
+
Added: sandbox/tree_node/libs/tree_node/doc/ref_get_properties.qbk
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ sandbox/tree_node/libs/tree_node/doc/ref_get_properties.qbk	2013-07-07 14:52:52 EDT (Sun, 07 Jul 2013)	(r84977)
@@ -0,0 +1,44 @@
+[/=============================================================================
+    Copyright (C) 2013 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:get_properties `get_properties()`]
+
+[section:func_synopsis Function Synopsis]
+[reference__get_properties]
+[endsect]
+
+[section:func_description Function Description]
+This function returns a heterogeneous list of key types--each of which, when
+passed as a template argument to __has_key__ while the __Tree_Node__ object is
+passed by reference, will evaluate to `true`--each paired with the value
+returned through key-value access of the specified node.
+[endsect]
+
+[section:result_of Return Type Metafunction Synopsis]
+[reference__result_of__get_properties]
+[endsect]
+
+[section:result_of_description Return Type Metafunction Description]
+Let `Node` be a (possibly `const`-qualified) __Tree_Node__ model.
+
+``
+    typedef result_of::get_properties<Node>::type r;
+``
+
+[*Return type:] A __Fusion_Sequence__ of __half_runtime_pairs__ of key types
+and their matching value types as defined by the specified node type.
+[endsect]
+
+[section:definition Where defined]
+``
+#include <__get_properties__header__>
+``
+[endsect]
+
+[endsect] [/ get_properties]
+
Added: sandbox/tree_node/libs/tree_node/doc/ref_has_key.qbk
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ sandbox/tree_node/libs/tree_node/doc/ref_has_key.qbk	2013-07-07 14:52:52 EDT (Sun, 07 Jul 2013)	(r84977)
@@ -0,0 +1,44 @@
+[/=============================================================================
+    Copyright (C) 2013 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:has_key `has_key()`]
+
+[section:func_synopsis Function Synopsis]
+[reference__tree_node__has_key]
+[endsect]
+
+[section:func_description Function Description]
+This function returns `true` if the matching value exists in the specified
+node--that is, if `get(node, Key())` and `get<Key>(node)` are well-formed
+expressions--`false` otherwise.
+[endsect]
+
+[section:result_of Return Type Metafunction Synopsis]
+[reference__tree_node__result_of__has_key]
+[endsect]
+
+[section:result_of_description Return Type Metafunction Description]
+Let `Node` be a (possibly `const`-qualified) __Tree_Node__ model.
+
+``
+    typedef result_of::has_key<Node> r;
+``
+
+[*Return type:] __mpl_true__ if, in any `Node node`, the matching value
+exists--that is, if `get(node, Key())` and `get<Key>(node)` are well-formed
+expressions--__mpl_false__ otherwise.
+[endsect]
+
+[section:definition Where defined]
+``
+#include <__has_key__header__>
+``
+[endsect]
+
+[endsect] [/ has_key]
+
Added: sandbox/tree_node/libs/tree_node/doc/ref_height_key.qbk
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ sandbox/tree_node/libs/tree_node/doc/ref_height_key.qbk	2013-07-07 14:52:52 EDT (Sun, 07 Jul 2013)	(r84977)
@@ -0,0 +1,34 @@
+[/=============================================================================
+    Copyright (C) 2013 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:height_key `height_key`]
+
+[section Synopsis]
+[reference__height_key]
+[endsect]
+
+[section Description]
+Use this type to access the [*height] of a __Tree_Node__ object, or the
+magnitude of the difference in ply between it and its deepest descendant.  The
+__Tree_Node__ type must ultimately inherit from __tree_node_with_height_base__.
+[endsect]
+
+[section:definition Where defined]
+``
+#include <__height_key__header__>
+``
+
+To register under __Boost_Typeof__:
+
+``
+#include <__height_key__typeof_header__>
+``
+[endsect]
+
+[endsect] [/ height_key]
+
Added: sandbox/tree_node/libs/tree_node/doc/ref_in_order_iterator.qbk
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ sandbox/tree_node/libs/tree_node/doc/ref_in_order_iterator.qbk	2013-07-07 14:52:52 EDT (Sun, 07 Jul 2013)	(r84977)
@@ -0,0 +1,356 @@
+[/=============================================================================
+    Copyright (C) 2011-2013 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:in_order_iterator `in_order_iterator<Node,IsReverse>`]
+
+[section Synopsis]
+[reference__in_order_iterator]
+[endsect]
+
+[section Description]
+This iterator traverses the root node passed to its constructor--and all its
+descendants--in in-order fashion, e.g. given the following tree representation:
+
+``
+      A
+      |
+  C---+---B
+  |       |
++-+-+   +-+-+
+|   |   |   |
+D   E   F   G
+``
+
+The tree nodes will be traversed forward in the following order:
+
+``
+D C E A F B G
+``
+
+This iterator can also be used to traverse the tree nodes in reverse:
+
+``
+G B F A E C D
+``
+
+[important
+    This iterator works only on __Binary_Tree_Node__ models.
+]
+[endsect]
+
+[section:definition Where defined]
+``
+#include <__in_order_iterator__header__>
+``
+
+To register under __Boost_Typeof__:
+
+``
+#include <__in_order_iterator__typeof_header__>
+``
+[endsect]
+
+[section:tpl_param Template Parameters]
+[table
+    [[Parameter][Description][Requirements][Default]]
+    [
+        [`Node`]
+        [The type of a tree node.]
+        [
+            It must model the __Tree_Node__ concept, but it can be
+            `const`-qualified.
+        ]
+        []
+    ]
+    [
+        [`IsReverse`]
+        [
+            Configures the `in_order_iterator` to traverse tree nodes in
+            reverse in-order fashion if equivalent to __mpl_true__; otherwise,
+            the nodes will be traversed in in-order fashion.
+        ]
+        [It must model the __Boolean_Integral_Constant__ concept.]
+        [__mpl_false__]
+    ]
+]
+[endsect]
+
+[section:model_of Model of]
+[itemized_list
+    [__Full_Tree_Node_Iterator__]
+    [
+        __Indexable_Iterator__ if the value associated with __count_key__
+        exists for `Node`; __Bidirectional_Iterator__ otherwise
+    ]
+    [__Default_Constructible__]
+    [__Copy_Constructible__]
+    [__Assignable__]
+]
+[endsect]
+
+[section Members]
+[table
+    [[Name][Expression][Description][Type requirements]]
+    [
+        [Value type]
+        [``
+            typedef ... value_type;
+        ``]
+        [Defined by the __Full_Tree_Node_Iterator__ concept.]
+        []
+    ]
+    [
+        [Reference type]
+        [``
+            typedef ... reference;
+        ``]
+        [Defined by the __Forward_Iterator__ concept.]
+        []
+    ]
+    [
+        [Pointer type]
+        [``
+            typedef ... pointer;
+        ``]
+        [Defined by the __Forward_Iterator__ concept.]
+        []
+    ]
+    [
+        [Distance type]
+        [``
+            typedef ... difference_type;
+        ``]
+        [Defined by the __Forward_Iterator__ concept.]
+        []
+    ]
+    [
+        [Iterator category]
+        [``
+            typedef ... iterator_category;
+        ``]
+        [Defined by the __Forward_Iterator__ concept.]
+        []
+    ]
+    [
+        [Default constructor]
+        [``
+            in_order_iterator();
+        ``]
+        [
+            Constructs this iterator but does not initialize it.  Useful
+            when delayed initialization is necessary.  Required by the
+            __Default_Constructible__ concept.
+        ]
+        []
+    ]
+    [
+        [Constructor from node]
+        [``
+            in_order_iterator(Node&, bool = true);
+        ``]
+        [
+            If the flag is set to `true` (the default), sets this iterator to
+            traverse the specified node and its descendants, as required by the
+            __Full_Tree_Node_Iterator__ concept; otherwise, sets this iterator
+            to point to the specified node in a traversal through the node's
+            root ancestor and its descendants.
+        ]
+        []
+    ]
+    [
+        [Conversion constructor]
+        [``
+            template <typename N, typename I>
+            in_order_iterator(in_order_iterator<N,I> const&);
+        ``]
+        [
+            Constructs this iterator as a copy of the specified one so that the
+            current node is of type `Node`.
+        ]
+        [
+            [^_tr1_is_convertible_<N,Node>] must evaluate to __tr1_true_type__,
+            and [^_mpl_equal_to_<I,IsReverse>] must evaluate to __mpl_true__.
+        ]
+    ]
+    [
+        [Copy constructor]
+        [``
+            in_order_iterator(in_order_iterator const&);
+        ``]
+        [Defined by the __Copy_Constructible__ concept.]
+        []
+    ]
+    [
+        [Assignment operator]
+        [``
+            in_order_iterator& operator=(in_order_iterator const&);
+        ``]
+        [Defined by the __Assignable__ concept.]
+        []
+    ]
+    [
+        [Dereference operator]
+        [``
+            reference operator*() const;
+        ``]
+        [
+            Returns the current node.  Required by the __Forward_Iterator__
+            concept.
+        ]
+    ]
+    [
+        [Indirection operator]
+        [``
+            pointer operator->() const;
+        ``]
+        [
+            Returns a pointer to the current node.  Required by the
+            __Forward_Iterator__ concept.
+        ]
+        []
+    ]
+    [
+        [Pre-increment operator]
+        [``
+            in_order_iterator& operator++();
+        ``]
+        [
+            If `IsReverse` evaluates to __mpl_true__, points this iterator to
+            the next node in the reverse in-order traversal of the tree whose
+            root node was passed into the constructor; otherwise, points this
+            iterator to the next node in the in-order traversal of the tree
+            whose root node was passed into the constructor.  Returns this
+            iterator.  Required by the __Forward_Iterator__ concept.
+        ]
+        []
+    ]
+    [
+        [Post-increment operator]
+        [``
+            in_order_iterator operator++(int);
+        ``]
+        [
+            If `IsReverse` evaluates to __mpl_true__, points this iterator to
+            the next node in the reverse in-order traversal of the tree whose
+            root node was passed into the constructor; otherwise, points this
+            iterator to the next node in the in-order traversal of the tree
+            whose root node was passed into the constructor.  Returns a new
+            iterator pointing to the (previous) current node.  Required by the
+            __Forward_Iterator__ concept.
+        ]
+        []
+    ]
+    [
+        [Pre-decrement operator]
+        [``
+            in_order_iterator& operator--();
+        ``]
+        [
+            If `IsReverse` evaluates to __mpl_true__, points this iterator to
+            the previous node in the reverse in-order traversal of the tree
+            whose root node was passed into the constructor; otherwise, points
+            this iterator to the previous node in the in-order traversal of the
+            tree whose root node was passed into the constructor.  Returns this
+            iterator.  Required by the __Bidirectional_Iterator__ concept.
+        ]
+        []
+    ]
+    [
+        [Post-decrement operator]
+        [``
+            in_order_iterator operator--(int);
+        ``]
+        [
+            If `IsReverse` evaluates to __mpl_true__, points this iterator to
+            the previous node in the reverse in-order traversal of the tree
+            whose root node was passed into the constructor; otherwise, points
+            this iterator to the previous node in the in-order traversal of the
+            tree whose root node was passed into the constructor.  Returns a
+            new iterator pointing to the (next) current node.  Required by the
+            __Bidirectional_Iterator__ concept.
+        ]
+        []
+    ]
+    [
+        [Addition assignment operator]
+        [``
+            in_order_iterator& operator+=(difference_type n);
+        ``]
+        [Defined by the __Indexable_Iterator__ concept.]
+        [The value associated with __count_key__ must exist for `Node`.]
+    ]
+    [
+        [Subtraction assignment operator]
+        [``
+            in_order_iterator& operator-=(difference_type n);
+        ``]
+        [Defined by the __Indexable_Iterator__ concept.]
+        [The value associated with __count_key__ must exist for `Node`.]
+    ]
+    [
+        [Traversal state conversion operator]
+        [``
+            operator _traversal_state_() const;
+        ``]
+        [Defined by the __Tree_Node_Iterator__ concept.]
+        []
+    ]
+]
+[endsect] [/ Members]
+
+[section:non_members Non-members]
+[table
+    [[Name][Expression][Description]]
+    [
+        [Forward iterator creation]
+        [[reference__make_in_order_iterator]]
+        [
+            Constructs and returns an `in_order_iterator` that will iterate
+            forward through the specified node and its descendants.
+        ]
+    ]
+    [
+        [Forward iterator end creation]
+        [[reference__make_in_order_iterator_end]]
+        [
+            Constructs and returns an `in_order_iterator` that points
+            past-the-end of a forward iteration through the specified node and
+            its descendants.
+        ]
+    ]
+    [
+        [Reverse iterator creation]
+        [[reference__make_in_order_reverse_iterator]]
+        [
+            Constructs and returns an `in_order_iterator` that will iterate
+            in reverse through the specified node and its descendants.
+        ]
+    ]
+    [
+        [Reverse iterator end creation]
+        [[reference__make_in_order_reverse_iterator_end]]
+        [
+            Constructs and returns an `in_order_iterator` that points
+            past-the-end of a reverse iteration through the specified node and
+            its descendants.
+        ]
+    ]
+    [
+        [Position iterator creation]
+        [[reference__make_in_order_iterator_position]]
+        [
+            Constructs and returns an `in_order_iterator` that points to the
+            specified node in a forward traversal through the node's root
+            ancestor and its descendants.
+        ]
+    ]
+]
+[endsect] [/ Non-members]
+
+[endsect] [/ in_order_iterator]
+
Added: sandbox/tree_node/libs/tree_node/doc/ref_nary_node.qbk
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ sandbox/tree_node/libs/tree_node/doc/ref_nary_node.qbk	2013-07-07 14:52:52 EDT (Sun, 07 Jul 2013)	(r84977)
@@ -0,0 +1,317 @@
+[/=============================================================================
+    Copyright (C) 2011-2013 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:nary_node `nary_node<T,Selector>`]
+
+[section Description]
+This class template is suitable for classes or algorithms that require a tree
+node data structure that can handle an arbitrary number of children.  Objects
+of this type can be stored by value.
+
+If the user data type models the __Fusion_Associative_Sequence__ concept, then
+each of the elements within can be also be obtained through key-value access
+and set through key-value modification as defined by the __Tree_Node__ concept;
+more specifically, for some object `node` of type `Node` such that `Node` is a
+template instantiation of `nary_node`, then for any type `Key` such that
+[^_fusion_has_key_<Key>(get<_data_key_>(node))] returns `true`, so does
+[^_has_key_<Key>(node)].
+[endsect]
+
+[section:definition Where defined]
+``
+#include <__nary_node__header__>
+``
+
+Forward-declared:
+
+``
+#include <__nary_node__forward_header__>
+``
+
+To register under __Boost_Typeof__:
+
+``
+#include <__nary_node__typeof_header__>
+``
+[endsect]
+
+[section:tpl_param Template Parameters]
+[table
+    [[Parameter][Description][Requirements][Default]]
+    [
+        [`T`]
+        [The type of the user data to be stored in an `nary_node`.]
+        []
+        []
+    ]
+    [
+        [`Selector`]
+        [The type that determines the child container type.]
+        [[^_is_recursive_selector_<Selector>] must return __mpl_true__.]
+        [__ptr_dequeS__]
+    ]
+]
+[endsect]
+
+[section:model_of Model of]
+[itemized_list
+    [__N_ary_Tree_Node__]
+    [
+        __Reversible_Tree_Node__ if
+        [^_container_gen_<Selector,nary_node>::type] returns a
+        __Reversible_Container__ model
+    ]
+    [__Default_Constructible__ if `T` is __Default_Constructible__]
+    [__Copyable_Tree_Node__ if `T` is __Copy_Constructible__]
+    [__Assignable__ if `T` is __Copy_Constructible__ and __Movable__]
+    [__Movable_Tree_Node__ if `T` is __Movable__]
+]
+[endsect]
+
+[section:public_bases Public Base Classes]
+[reference__nary_node__bases]
+[endsect]
+
+[section:members Public Members]
+Given:
+[reference__nary_node_base__children]
+[table
+    [[Name][Definition][Where defined]]
+    [
+        [Super type]
+        [[reference__nary_node__super_t]]
+        [__Tree_Node__]
+    ]
+    [
+        [Data type, allocator type, allocator reference type]
+        [[reference__nary_node__traits]]
+        [__Tree_Node__]
+    ]
+    [
+        [Pointer type]
+        [[reference__nary_node__pointer]]
+        [__Tree_Node__]
+    ]
+    [
+        [Pointer-to-const type]
+        [[reference__nary_node__const_pointer]]
+        [__Tree_Node__]
+    ]
+    [
+        [Iterator type]
+        [[reference__nary_node__iterator]]
+        [__Non_Associative_Tree_Node__]
+    ]
+    [
+        [Immutable iterator type]
+        [[reference__nary_node__const_iterator]]
+        [__Non_Associative_Tree_Node__]
+    ]
+    [
+        [Reverse iterator type]
+        [``
+            typedef typename children::reverse_iterator reverse_iterator;
+        ``]
+        [__Reversible_Tree_Node__]
+    ]
+    [
+        [Immutable reverse iterator type]
+        [``
+            typedef typename children::const_reverse_iterator
+                    const_reverse_iterator;
+        ``]
+        [__Reversible_Tree_Node__]
+    ]
+    [
+        [Emplacement constructor]
+        [[reference__nary_node__emplacement_ctor]]
+        [__Tree_Node__]
+    ]
+    [
+        [Emplacement constructor with allocator]
+        [[reference__nary_node__emplacement_ctor_w_allocator]]
+        [__Tree_Node__]
+    ]
+    [
+        [Copy constructor]
+        [``
+            nary_node(nary_node const& copy);
+        ``]
+        [__Copyable_Tree_Node__]
+    ]
+    [
+        [Copy constructor with allocator]
+        [``
+            nary_node(
+                nary_node const& copy
+              , typename traits::allocator_reference allocator
+            );
+        ``]
+        [__Copyable_Tree_Node__]
+    ]
+    [
+        [Move constructor]
+        [``
+            nary_node(nary_node&& source);
+        ``]
+        [__Movable_Tree_Node__]
+    ]
+    [
+        [Move constructor with allocator]
+        [``
+            nary_node(
+                nary_node&& source
+              , typename traits::allocator_reference allocator
+            );
+        ``]
+        [__Movable_Tree_Node__]
+    ]
+    [
+        [Copy assignment operator]
+        [``
+            nary_node& operator=(nary_node const&);
+        ``]
+        [__Assignable__]
+    ]
+    [
+        [Move assignment operator]
+        [``
+            nary_node& operator=(nary_node&&);
+        ``]
+        [__Movable__]
+    ]
+    [
+        [Parent read-only access]
+        [[reference__nary_node_base__get_parent_ptr__const]]
+        [__Tree_Node__]
+    ]
+    [
+        [Parent access]
+        [[reference__nary_node_base__get_parent_ptr]]
+        [__Tree_Node__]
+    ]
+    [
+        [Child creation]
+        [[reference__nary_node_base__emplace]]
+        [__N_ary_Tree_Node__]
+    ]
+    [
+        [Child copy creation]
+        [``
+            iterator insert(nary_node const& child);
+        ``]
+        [__N_ary_Tree_Node__]
+    ]
+    [
+        [Child move insertion]
+        [``
+            iterator insert(nary_node&& child);
+        ``]
+        [__N_ary_Tree_Node__]
+    ]
+    [
+        [Children range begin read-only access]
+        [[reference__nary_node_base__cbegin]]
+        [__Tree_Node__]
+    ]
+    [
+        [Children range begin access]
+        [[reference__nary_node_base__begin]]
+        [__Tree_Node__]
+    ]
+    [
+        [Children range past-the-end read-only access]
+        [[reference__nary_node_base__cend]]
+        [__Tree_Node__]
+    ]
+    [
+        [Children range past-the-end access]
+        [[reference__nary_node_base__end]]
+        [__Tree_Node__]
+    ]
+    [
+        [Children reverse range begin read-only access]
+        [[reference__nary_node_base__crbegin]]
+        [__Reversible_Tree_Node__]
+    ]
+    [
+        [Children reverse range begin access]
+        [[reference__nary_node_base__rbegin]]
+        [__Reversible_Tree_Node__]
+    ]
+    [
+        [Children reverse range past-the-end read-only access]
+        [[reference__nary_node_base__crend]]
+        [__Reversible_Tree_Node__]
+    ]
+    [
+        [Children reverse range past-the-end access]
+        [[reference__nary_node_base__rend]]
+        [__Reversible_Tree_Node__]
+    ]
+    [
+        [Children range size query]
+        [[reference__nary_node_base__size]]
+        [__Tree_Node__]
+    ]
+    [
+        [Leaf node query]
+        [[reference__nary_node_base__empty]]
+        [__Tree_Node__]
+    ]
+    [
+        [Remove all children]
+        [[reference__nary_node_base__clear]]
+        [__Tree_Node__]
+    ]
+    [
+        [Splice node]
+        [``
+            typename _insert_range_result_gen_<Selector,nary_node>::type
+                splice(iterator pos, nary_node& node);
+        ``]
+        [__N_ary_Tree_Node__]
+    ]
+    [
+        [Splice single child]
+        [``
+            typename _insert_range_result_gen_<Selector,nary_node>::type
+                splice(iterator pos, nary_node& node, iterator itr);
+        ``]
+        [__N_ary_Tree_Node__]
+    ]
+    [
+        [Splice range]
+        [``
+            typename _insert_range_result_gen_<Selector,nary_node>::type
+                splice(
+                    iterator pos
+                  , nary_node& node
+                  , iterator itr
+                  , iterator itr_end
+                );
+        ``]
+        [__N_ary_Tree_Node__]
+    ]
+]
+[endsect] [/ Members]
+
+[section:non_members Non-Members]
+Same as those defined in __nary_node_base__.
+[endsect]
+
+[section Example]
+<__example_nary_node_cpp__>
+[endsect]
+
+[section Test]
+<__test_nary_node_cpp__>
+[endsect]
+
+[endsect] [/ nary_node]
+
Added: sandbox/tree_node/libs/tree_node/doc/ref_nary_node_base.qbk
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ sandbox/tree_node/libs/tree_node/doc/ref_nary_node_base.qbk	2013-07-07 14:52:52 EDT (Sun, 07 Jul 2013)	(r84977)
@@ -0,0 +1,396 @@
+[/=============================================================================
+    Copyright (C) 2011-2013 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:nary_node_base `nary_node_base<Derived,T,Selector>`]
+
+[section Description]
+The __nary_node__ class template inherits its functionality from this class
+template.  They differ only with regard to template parameters: the
+__nary_node__ class template is meant to be used directly as a data structure,
+while `nary_node_base` is more suitable as a base class template from which
+__Tree_Node__ adaptor class templates can derive via the __nary_node_base_gen__
+__Base_Type_Generator__.
+
+If the user data type models the __Fusion_Associative_Sequence__ concept, then
+each of the elements within can be also be obtained through key-value access
+and set through key-value modification as defined by the __Tree_Node__ concept;
+more specifically, for some object `node` of type `Node` such that `Node`
+inherits from `nary_node_base`, then for any type `Key` such that
+[^_fusion_has_key_<Key>(get<_data_key_>(node))] returns `true`, so does
+[^_has_key_<Key>(node)].
+[endsect]
+
+[section:definition Where defined]
+``
+#include <__nary_node__header__>
+``
+
+Forward-declared:
+
+``
+#include <__nary_node__forward_header__>
+``
+
+To register under __Boost_Typeof__:
+
+``
+#include <__nary_node__typeof_header__>
+``
+[endsect]
+
+[section:tpl_param Template Parameters]
+[table
+    [[Parameter][Description][Requirements]]
+    [
+        [`Derived`]
+        [The most descendant type that will inherit from this one.]
+        []
+    ]
+    [
+        [`T`]
+        [The user data type.]
+        []
+    ]
+    [
+        [`Selector`]
+        [The type that determines the child container type.]
+        [[^_is_recursive_selector_<Selector>] must return __mpl_true__.]
+    ]
+]
+[endsect]
+
+[section:model_of Model of]
+[itemized_list
+    [__N_ary_Tree_Node__]
+    [
+        __Reversible_Tree_Node__ if [^_container_gen_<Selector,Derived>::type]
+        returns a __Reversible_Container__ model
+    ]
+    [__Base_Tree_Node__]
+    [__Default_Constructible__ if `T` is __Default_Constructible__]
+]
+[endsect]
+
+[section:public_bases Public Base Classes]
+[reference__nary_node_base__bases]
+[endsect]
+
+[section:members Members]
+Given:
+[reference__nary_node_base__children]
+[table
+    [[Name][Definition][Scope][Where defined]]
+    [
+        [Super type]
+        [[reference__nary_node_base__super_t]]
+        [`public`]
+        [__Tree_Node__]
+    ]
+    [
+        [Data type, allocator type, allocator reference type]
+        [[reference__nary_node_base__traits]]
+        [`public`]
+        [__Tree_Node__]
+    ]
+    [
+        [Pointer type]
+        [[reference__nary_node_base__pointer]]
+        [`public`]
+        [__Tree_Node__]
+    ]
+    [
+        [Pointer-to-const type]
+        [[reference__nary_node_base__const_pointer]]
+        [`public`]
+        [__Tree_Node__]
+    ]
+    [
+        [Iterator type]
+        [[reference__nary_node_base__iterator]]
+        [`public`]
+        [__Non_Associative_Tree_Node__]
+    ]
+    [
+        [Immutable iterator type]
+        [[reference__nary_node_base__const_iterator]]
+        [`public`]
+        [__Non_Associative_Tree_Node__]
+    ]
+    [
+        [Reverse iterator type]
+        [``
+            typedef typename children::reverse_iterator reverse_iterator;
+        ``]
+        [`public`]
+        [__Reversible_Tree_Node__]
+    ]
+    [
+        [Immutable reverse iterator type]
+        [``
+            typedef typename children::const_reverse_iterator
+                    const_reverse_iterator;
+        ``]
+        [`public`]
+        [__Reversible_Tree_Node__]
+    ]
+    [
+        [Emplacement constructor]
+        [[reference__nary_node_base__emplacement_ctor]]
+        [`protected`]
+        [__Tree_Node__]
+    ]
+    [
+        [Emplacement constructor with allocator]
+        [[reference__nary_node_base__emplacement_ctor_w_allocator]]
+        [`protected`]
+        [__Tree_Node__]
+    ]
+    [
+        [Derived copy constructor]
+        [[reference__nary_node_base__derived_copy_ctor]]
+        [`protected`]
+        [__Base_Tree_Node__]
+    ]
+    [
+        [Derived copy constructor with allocator]
+        [[reference__nary_node_base__derived_copy_ctor_w_allocator]]
+        [`protected`]
+        [__Base_Tree_Node__]
+    ]
+    [
+        [Derived move constructor]
+        [``
+            nary_node_base(Derived&& source);
+        ``]
+        [`protected`]
+        [__Base_Tree_Node__]
+    ]
+    [
+        [Derived move constructor with allocator]
+        [``
+            nary_node_base(
+                Derived&& source
+              , typename traits::allocator_reference allocator
+            );
+        ``]
+        [`protected`]
+        [__Base_Tree_Node__]
+    ]
+    [
+        [Base descendant cloning]
+        [[reference__nary_node_base__clone_descendants]]
+        [`protected`]
+        [__Base_Tree_Node__]
+    ]
+    [
+        [Base descendant movement]
+        [``
+            void move_descendants(Derived&& source);
+        ``]
+        [`protected`]
+        [__Base_Tree_Node__]
+    ]
+    [
+        [Derived copy assignment]
+        [[reference__nary_node_base__copy_assign]]
+        [`protected`]
+        [__Base_Tree_Node__]
+    ]
+    [
+        [Derived move assignment]
+        [``
+            Derived& operator=(Derived&&);
+        ``]
+        [`protected`]
+        [__Base_Tree_Node__]
+    ]
+    [
+        [User data member read-only access]
+        [[reference__nary_node_base__key_value_operator__const]]
+        [`public`]
+        [`nary_node_base`]
+    ]
+    [
+        [User data member access]
+        [[reference__nary_node_base__key_value_operator]]
+        [`public`]
+        [`nary_node_base`]
+    ]
+    [
+        [Parent access]
+        [[reference__nary_node_base__get_parent_ptr__const]]
+        [`public`]
+        [__Tree_Node__]
+    ]
+    [
+        [Parent access]
+        [[reference__nary_node_base__get_parent_ptr]]
+        [`public`]
+        [__Tree_Node__]
+    ]
+    [
+        [Child creation]
+        [[reference__nary_node_base__emplace]]
+        [`public`]
+        [__N_ary_Tree_Node__]
+    ]
+    [
+        [Child copy creation]
+        [[reference__nary_node_base__insert]]
+        [`public`]
+        [__N_ary_Tree_Node__]
+    ]
+    [
+        [Child move insertion]
+        [``
+            iterator insert(Derived&& child);
+        ``]
+        [`public`]
+        [__N_ary_Tree_Node__]
+    ]
+    [
+        [Children range begin read-only access]
+        [[reference__nary_node_base__cbegin]]
+        [`public`]
+        [__Tree_Node__]
+    ]
+    [
+        [Children range begin access]
+        [[reference__nary_node_base__begin]]
+        [`public`]
+        [__Tree_Node__]
+    ]
+    [
+        [Children range past-the-end read-only access]
+        [[reference__nary_node_base__cend]]
+        [`public`]
+        [__Tree_Node__]
+    ]
+    [
+        [Children range past-the-end access]
+        [[reference__nary_node_base__end]]
+        [`public`]
+        [__Tree_Node__]
+    ]
+    [
+        [Children reverse range begin read-only access]
+        [[reference__nary_node_base__crbegin]]
+        [`public`]
+        [__Reversible_Tree_Node__]
+    ]
+    [
+        [Children reverse range begin access]
+        [[reference__nary_node_base__rbegin]]
+        [`public`]
+        [__Reversible_Tree_Node__]
+    ]
+    [
+        [Children reverse range past-the-end read-only access]
+        [[reference__nary_node_base__crend]]
+        [`public`]
+        [__Reversible_Tree_Node__]
+    ]
+    [
+        [Children reverse range past-the-end access]
+        [[reference__nary_node_base__rend]]
+        [`public`]
+        [__Reversible_Tree_Node__]
+    ]
+    [
+        [Children range size query]
+        [[reference__nary_node_base__size]]
+        [`public`]
+        [__Tree_Node__]
+    ]
+    [
+        [Leaf node query]
+        [[reference__nary_node_base__empty]]
+        [`public`]
+        [__Tree_Node__]
+    ]
+    [
+        [Remove all children]
+        [[reference__nary_node_base__clear]]
+        [`public`]
+        [__Tree_Node__]
+    ]
+    [
+        [Splice node]
+        [[reference__nary_node_base__splice]]
+        [`public`]
+        [__N_ary_Tree_Node__]
+    ]
+    [
+        [Splice single child]
+        [[reference__nary_node_base__splice_one]]
+        [`public`]
+        [__N_ary_Tree_Node__]
+    ]
+    [
+        [Splice range]
+        [[reference__nary_node_base__splice_range]]
+        [`public`]
+        [__N_ary_Tree_Node__]
+    ]
+    [
+        [Derived read-only access]
+        [``
+            const_pointer get_derived() const;
+        ``]
+        [`public`]
+        [__Base_Tree_Node__]
+    ]
+    [
+        [Derived access]
+        [``
+            pointer get_derived();
+        ``]
+        [`public`]
+        [__Base_Tree_Node__]
+    ]
+]
+[endsect] [/ Members]
+
+[section:non_members Non-Members]
+[table
+    [[Name][Definition][Where defined]]
+    [
+        [User data read-only access]
+        [[reference__nary_node_base__at_data_key__const]]
+        [__Tree_Node__]
+    ]
+    [
+        [user data access]
+        [[reference__nary_node_base__at_data_key]]
+        [__Tree_Node__]
+    ]
+    [
+        [User data modification]
+        [[reference__nary_node_base__put_data]]
+        [__Tree_Node__]
+    ]
+    [
+        [Key-value read-only access]
+        [[reference__nary_node_base__at_key__const]]
+        [__Tree_Node__]
+    ]
+    [
+        [Key-value access]
+        [[reference__nary_node_base__at_key]]
+        [__Tree_Node__]
+    ]
+    [
+        [Key-value modification]
+        [[reference__nary_node_base__put]]
+        [__Tree_Node__]
+    ]
+]
+[endsect] [/ Non-Members]
+
+[endsect] [/ nary_node_base]
+
Added: sandbox/tree_node/libs/tree_node/doc/ref_nary_node_base_gen.qbk
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ sandbox/tree_node/libs/tree_node/doc/ref_nary_node_base_gen.qbk	2013-07-07 14:52:52 EDT (Sun, 07 Jul 2013)	(r84977)
@@ -0,0 +1,72 @@
+[/=============================================================================
+    Copyright (C) 2011-2013 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:nary_node_base_gen `nary_node_base_gen<Selector>`]
+
+[section Synopsis]
+[reference__nary_node_base_gen]
+[endsect]
+
+[section Description]
+Minimalist selector that can be passed on to generic functions and/or data
+structures that use models of the __N_ary_Tree_Node__ and __Base_Tree_Node__
+concepts.
+[endsect]
+
+[section:definition Where defined]
+``
+#include <__nary_node__header__>
+``
+
+To register under __Boost_Typeof__:
+
+``
+#include <__nary_node__typeof_header__>
+``
+[endsect]
+
+[section:model_of Model of]
+__Base_Type_Generator__
+[endsect]
+
+[section:tpl_param Template Parameters]
+[table
+    [[Parameter][Description][Requirements][Default]]
+    [
+        [`Selector`]
+        [
+            The type that determines the child container type of
+            __nary_node_base__.
+        ]
+        [[^_is_recursive_selector_<Selector>] must return __mpl_true__.]
+        [__ptr_dequeS__]
+    ]
+]
+[endsect]
+
+[section:expressions Expression Semantics]
+Let `Derived` be the type that will inherit from __nary_node_base__.
+
+Let `T` be the user data type.
+
+Let `Selector` be a valid `nary_node_gen` template argument.
+
+``
+    typedef _mpl_apply_wrap2_<nary_node_base_gen<Selector>,Derived,T>::type r;
+``
+
+[*Return type:] [^_nary_node_base_<Derived,T,Selector>]
+
+[endsect]
+
+[section Complexity]
+Compile time.
+[endsect]
+
+[endsect] [/ nary_node_base_gen]
+
Added: sandbox/tree_node/libs/tree_node/doc/ref_nary_node_gen.qbk
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ sandbox/tree_node/libs/tree_node/doc/ref_nary_node_gen.qbk	2013-07-07 14:52:52 EDT (Sun, 07 Jul 2013)	(r84977)
@@ -0,0 +1,66 @@
+[/=============================================================================
+    Copyright (C) 2011-2013 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:nary_node_gen `nary_node_gen<Selector>`]
+
+[section Synopsis]
+[reference__nary_node_gen]
+[endsect]
+
+[section Description]
+Minimalist selector that can be passed on to generic functions and/or data
+structures that use __N_ary_Tree_Node__ models.
+[endsect]
+
+[section:definition Where defined]
+``
+#include <__nary_node__header__>
+``
+
+To register under __Boost_Typeof__:
+
+``
+#include <__nary_node__typeof_header__>
+``
+[endsect]
+
+[section:model_of Model of]
+__Node_Type_Generator__
+[endsect]
+
+[section:tpl_param Template Parameters]
+[table
+    [[Parameter][Description][Requirements][Default]]
+    [
+        [`Selector`]
+        [The type that determines the child container type of __nary_node__.]
+        [[^_is_recursive_selector_<Selector>] must return __mpl_true__.]
+        [__ptr_dequeS__]
+    ]
+]
+[endsect]
+
+[section:expressions Expression Semantics]
+Let `T` be the user data type.
+
+Let `Selector` be a valid `nary_node_gen` template argument.
+
+``
+    typedef _mpl_apply_wrap1_<nary_node_gen<Selector>,T>::type r;
+``
+
+[*Return type:] [^_nary_node_<T,Selector>]
+
+[endsect]
+
+[section Complexity]
+Compile time.
+[endsect]
+
+[endsect] [/ nary_node_gen]
+
Added: sandbox/tree_node/libs/tree_node/doc/ref_null_balancer.qbk
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ sandbox/tree_node/libs/tree_node/doc/ref_null_balancer.qbk	2013-07-07 14:52:52 EDT (Sun, 07 Jul 2013)	(r84977)
@@ -0,0 +1,32 @@
+[/=============================================================================
+    Copyright (C) 2013 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:null_balancer `null_balancer`]
+
+[section Synopsis]
+[reference__null_balancer]
+[endsect]
+
+[section Description]
+TODO.
+[endsect]
+
+[section:definition Where defined]
+``
+#include <__null_balancer__header__>
+``
+
+To register under __Boost_Typeof__:
+
+``
+#include <__null_balancer__typeof_header__>
+``
+[endsect]
+
+[endsect] [/ null_balancer]
+
Added: sandbox/tree_node/libs/tree_node/doc/ref_position_key.qbk
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ sandbox/tree_node/libs/tree_node/doc/ref_position_key.qbk	2013-07-07 14:52:52 EDT (Sun, 07 Jul 2013)	(r84977)
@@ -0,0 +1,34 @@
+[/=============================================================================
+    Copyright (C) 2013 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:position_key `position_key`]
+
+[section Synopsis]
+[reference__position_key]
+[endsect]
+
+[section Description]
+Use this type to access the iterator that points to a __Tree_Node__ object in
+its parent's collection of children.  The __Tree_Node__ type must ultimately
+inherit from __tree_node_with_position_base__.
+[endsect]
+
+[section:definition Where defined]
+``
+#include <__position_key__header__>
+``
+
+To register under __Boost_Typeof__:
+
+``
+#include <__position_key__typeof_header__>
+``
+[endsect]
+
+[endsect] [/ position_key]
+
Added: sandbox/tree_node/libs/tree_node/doc/ref_post_order_desc_iter.qbk
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ sandbox/tree_node/libs/tree_node/doc/ref_post_order_desc_iter.qbk	2013-07-07 14:52:52 EDT (Sun, 07 Jul 2013)	(r84977)
@@ -0,0 +1,284 @@
+[/=============================================================================
+    Copyright (C) 2011-2013 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_desc_iter `post_order_descendant_iterator<Node,IsReverse>`]
+
+[section Synopsis]
+[reference__post_order_descendant_iterator]
+[endsect]
+
+[section Description]
+This iterator traverses the descendants of the root node passed to its
+constructor in either post-order or reverse pre-order fashion, e.g. given
+the following tree representation:
+
+``
+      A
+      |
+  C---+---B
+  |       |
++-+-+   +-+-+
+|   |   |   |
+D   E   F   G
+``
+
+By default, this iterator will traverse the tree nodes in the following order:
+
+``
+D E C F G B
+``
+
+However, if `IsReverse` evaluates to __mpl_true__, then this iterator will
+traverse the tree nodes in the following order:
+
+``
+B G F C E D
+``
+[endsect]
+
+[section:definition Where defined]
+``
+#include <__post_order_descendant_iterator__header__>
+``
+
+To register under __Boost_Typeof__:
+
+``
+#include <__post_order_descendant_iterator__typeof_header__>
+``
+[endsect]
+
+[section:tpl_param Template Parameters]
+[table
+    [[Parameter][Description][Requirements][Default]]
+    [
+        [`Node`]
+        [The type of a tree node.]
+        [
+            It must model the __Tree_Node__ concept, but it can be
+            `const`-qualified.
+        ]
+        []
+    ]
+    [
+        [`IsReverse`]
+        [
+            Configures the `post_order_descendant_iterator` to traverse tree
+            nodes in reverse pre-order fashion if equivalent to __mpl_true__;
+            otherwise, the nodes will be traversed in post-order fashion.
+        ]
+        [It must model the __Boolean_Integral_Constant__ concept.]
+        [__mpl_false__]
+    ]
+]
+[endsect]
+
+[section:model_of Model of]
+[itemized_list
+    [__Tree_Node_Descendant_Iterator__]
+    [__Default_Constructible__]
+    [__Copy_Constructible__]
+    [__Assignable__]
+]
+[endsect]
+
+[section Members]
+[table
+    [[Name][Expression][Description][Type requirements]]
+    [
+        [Value type]
+        [``
+            typedef ... value_type;
+        ``]
+        [Defined by the __Tree_Node_Descendant_Iterator__ concept.]
+        []
+    ]
+    [
+        [Reference type]
+        [``
+            typedef ... reference;
+        ``]
+        [Defined by the __Forward_Iterator__ concept.]
+        []
+    ]
+    [
+        [Pointer type]
+        [``
+            typedef ... pointer;
+        ``]
+        [Defined by the __Forward_Iterator__ concept.]
+        []
+    ]
+    [
+        [Distance type]
+        [``
+            typedef ... difference_type;
+        ``]
+        [Defined by the __Forward_Iterator__ concept.]
+        []
+    ]
+    [
+        [Iterator category]
+        [``
+            typedef ... iterator_category;
+        ``]
+        [Defined by the __Forward_Iterator__ concept.]
+        []
+    ]
+    [
+        [Default constructor]
+        [``
+            post_order_descendant_iterator();
+        ``]
+        [
+            Sets this iterator past-the-end.  Required by the
+            __Default_Constructible__ concept.
+        ]
+        []
+    ]
+    [
+        [Constructor from node]
+        [``
+            post_order_descendant_iterator(Node&);
+        ``]
+        [Defined by the __Tree_Node_Descendant_Iterator__ concept.]
+        []
+    ]
+    [
+        [Conversion constructor]
+        [``
+            template <typename N, typename I>
+            post_order_descendant_iterator(
+                post_order_descendant_iterator<N,I> const&
+            );
+        ``]
+        [
+            Constructs this iterator as a copy of the specified one so that the
+            current node is of type `Node`.
+        ]
+        [
+            [^_tr1_is_convertible_<N,Node>] must evaluate to __tr1_true_type__,
+            and [^_mpl_equal_to_<I,IsReverse>] must evaluate to __mpl_true__.
+        ]
+    ]
+    [
+        [Copy constructor]
+        [``
+            post_order_descendant_iterator(
+                post_order_descendant_iterator const&
+            );
+        ``]
+        [Defined by the __Copy_Constructible__ concept.]
+        []
+    ]
+    [
+        [Assignment operator]
+        [``
+            post_order_descendant_iterator&
+                operator=(post_order_descendant_iterator const&);
+        ``]
+        [Defined by the __Assignable__ concept.]
+        []
+    ]
+    [
+        [Dereference operator]
+        [``
+            reference operator*() const;
+        ``]
+        [
+            If the `Node` type models the __Associative_Tree_Node__ concept,
+            returns an object whose `first` member refers to the key that is
+            associated with the current node.  If the `Node` type models
+            the __Non_Associative_Tree_Node__ concept, returns the current
+            node.  Required by the __Forward_Iterator__ concept.
+        ]
+        []
+    ]
+    [
+        [Indirection operator]
+        [``
+            pointer operator->() const;
+        ``]
+        [
+            If the `Node` type models the __Associative_Tree_Node__ concept,
+            returns a pointer to the object whose `first` member refers to the
+            key associated with the current node.  If the `Node` type models
+            the __Non_Associative_Tree_Node__ concept, returns a pointer to
+            the current node.  Required by the __Forward_Iterator__ concept.
+        ]
+        []
+    ]
+    [
+        [Pre-increment operator]
+        [``
+            post_order_descendant_iterator& operator++();
+        ``]
+        [
+            If `IsReverse` evaluates to __mpl_true__, points this iterator
+            to the next node in the reverse pre-order traversal of the
+            descendants of the root node that was passed into the constructor;
+            otherwise, points this iterator to the next node in the post-order
+            traversal of the descendants of the root node that was passed into
+            the constructor.  Returns this iterator.  Required by the
+            __Forward_Iterator__ concept.
+        ]
+        []
+    ]
+    [
+        [Post-increment operator]
+        [``
+            post_order_descendant_iterator operator++(int);
+        ``]
+        [
+            If `IsReverse` evaluates to __mpl_true__, points this iterator
+            to the next node in the reverse pre-order traversal of the
+            descendants of the root node that was passed into the constructor;
+            otherwise, points this iterator to the next node in the post-order
+            traversal of the descendants of the root node that was passed into
+            the constructor.  Returns a new iterator pointing to the (previous)
+            current node.  Required by the __Forward_Iterator__ concept.
+        ]
+        []
+    ]
+    [
+        [Traversal state conversion operator]
+        [``
+            operator _traversal_state_() const;
+        ``]
+        [Defined by the __Tree_Node_Iterator__ concept.]
+        []
+    ]
+]
+[endsect] [/ Members]
+
+[section:non_members Non-members]
+[table
+    [[Name][Definition][Description]]
+    [
+        [Iterator creation]
+        [[reference__make_post_order_descendant_iterator]]
+        [
+            Constructs and returns a `post_order_descendant_iterator` that will
+            iterate through the descendants of the specified node in post-order
+            fashion.
+        ]
+    ]
+    [
+        [Reverse iterator creation]
+        [[reference__make_pre_order_descendant_reverse_iterator]]
+        [
+            Constructs and returns a `post_order_descendant_iterator` that will
+            iterate through the descendants of the specified node in reverse
+            pre-order fashion.
+        ]
+    ]
+]
+[endsect]
+
+[endsect] [/ post_order_descendant_iterator]
+
Added: sandbox/tree_node/libs/tree_node/doc/ref_post_order_iterator.qbk
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ sandbox/tree_node/libs/tree_node/doc/ref_post_order_iterator.qbk	2013-07-07 14:52:52 EDT (Sun, 07 Jul 2013)	(r84977)
@@ -0,0 +1,271 @@
+[/=============================================================================
+    Copyright (C) 2011-2013 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<Node,IsReverse>`]
+
+[section Synopsis]
+[reference__post_order_iterator]
+[endsect]
+
+[section Description]
+This iterator traverses the root node passed to its constructor--and all its
+descendants--in either post-order or reverse pre-order fashion, e.g. given the
+following tree representation:
+
+``
+      A
+      |
+  C---+---B
+  |       |
++-+-+   +-+-+
+|   |   |   |
+D   E   F   G
+``
+
+By default, this iterator will traverse the tree nodes in the following order:
+
+``
+D E C F G B A
+``
+
+However, if `IsReverse` evaluates to __mpl_true__, then this iterator will
+traverse the tree nodes in the following order:
+
+``
+A B G F C E D
+``
+[endsect]
+
+[section:definition Where defined]
+``
+#include <__post_order_iterator__header__>
+``
+
+To register under __Boost_Typeof__:
+
+``
+#include <__post_order_iterator__typeof_header__>
+``
+[endsect]
+
+[section:tpl_param Template Parameters]
+[table
+    [[Parameter][Description][Requirements][Default]]
+    [
+        [`Node`]
+        [The type of a tree node.]
+        [
+            It must model the __Tree_Node__ concept, but it can be
+            `const`-qualified.
+        ]
+        []
+    ]
+    [
+        [`IsReverse`]
+        [
+            Configures the `post_order_iterator` to traverse tree nodes in
+            reverse pre-order fashion if equivalent to __mpl_true__; otherwise,
+            the nodes will be traversed in post-order fashion.
+        ]
+        [It must model the __Boolean_Integral_Constant__ concept.]
+        [__mpl_false__]
+    ]
+]
+[endsect]
+
+[section:model_of Model of]
+[itemized_list
+    [__Full_Tree_Node_Iterator__]
+    [__Default_Constructible__]
+    [__Copy_Constructible__]
+    [__Assignable__]
+]
+[endsect]
+
+[section Members]
+[table
+    [[Name][Expression][Description][Type requirements]]
+    [
+        [Value type]
+        [``
+            typedef ... value_type;
+        ``]
+        [Defined by the __Full_Tree_Node_Iterator__ concept.]
+        []
+    ]
+    [
+        [Reference type]
+        [``
+            typedef ... reference;
+        ``]
+        [Defined by the __Forward_Iterator__ concept.]
+        []
+    ]
+    [
+        [Pointer type]
+        [``
+            typedef ... pointer;
+        ``]
+        [Defined by the __Forward_Iterator__ concept.]
+        []
+    ]
+    [
+        [Distance type]
+        [``
+            typedef ... difference_type;
+        ``]
+        [Defined by the __Forward_Iterator__ concept.]
+        []
+    ]
+    [
+        [Iterator category]
+        [``
+            typedef ... iterator_category;
+        ``]
+        [Defined by the __Forward_Iterator__ concept.]
+        []
+    ]
+    [
+        [Default constructor]
+        [``
+            post_order_iterator();
+        ``]
+        [
+            Sets this iterator past-the-end.  Required by the
+            __Default_Constructible__ concept.
+        ]
+        []
+    ]
+    [
+        [Constructor from node]
+        [``
+            explicit post_order_iterator(Node&);
+        ``]
+        [Defined by the __Full_Tree_Node_Iterator__ concept.]
+        []
+    ]
+    [
+        [Conversion constructor]
+        [``
+            template <typename N, typename I>
+            post_order_iterator(post_order_iterator<N,I> const&);
+        ``]
+        [
+            Constructs this iterator as a copy of the specified one so that the
+            current node is of type `Node`.
+        ]
+        [
+            [^_tr1_is_convertible_<N,Node>] must evaluate to __tr1_true_type__,
+            and [^_mpl_equal_to_<I,IsReverse>] must evaluate to __mpl_true__.
+        ]
+    ]
+    [
+        [Copy constructor]
+        [``
+            post_order_iterator(post_order_iterator const&);
+        ``]
+        [Defined by the __Copy_Constructible__ concept.]
+        []
+    ]
+    [
+        [Assignment operator]
+        [``
+            post_order_iterator& operator=(post_order_iterator const&);
+        ``]
+        [Defined by the __Assignable__ concept.]
+        []
+    ]
+    [
+        [Dereference operator]
+        [``
+            reference operator*() const;
+        ``]
+        [
+            Returns the current node.  Required by the __Forward_Iterator__
+            concept.
+        ]
+    ]
+    [
+        [Indirection operator]
+        [``
+            pointer operator->() const;
+        ``]
+        [
+            Returns a pointer to the current node.  Required by the
+            __Forward_Iterator__ concept.
+        ]
+        []
+    ]
+    [
+        [Pre-increment operator]
+        [``
+            post_order_iterator& operator++();
+        ``]
+        [
+            If `IsReverse` evaluates to __mpl_true__, points this iterator to
+            the next node in the reverse pre-order traversal of the tree whose
+            root node was passed into the constructor; otherwise, points this
+            iterator to the next node in the post-order traversal of the tree
+            whose root node was passed into the constructor.  Returns this
+            iterator.  Required by the __Forward_Iterator__ concept.
+        ]
+        []
+    ]
+    [
+        [Post-increment operator]
+        [``
+            post_order_iterator operator++(int);
+        ``]
+        [
+            If `IsReverse` evaluates to __mpl_true__, points this iterator to
+            the next node in the reverse pre-order traversal of the tree whose
+            root node was passed into the constructor; otherwise, points this
+            iterator to the next node in the post-order traversal of the tree
+            whose root node was passed into the constructor.  Returns a new
+            iterator pointing to the (previous) current node.  Required by the
+            __Forward_Iterator__ concept.
+        ]
+        []
+    ]
+    [
+        [Traversal state conversion operator]
+        [``
+            operator _traversal_state_() const;
+        ``]
+        [Defined by the __Tree_Node_Iterator__ concept.]
+        []
+    ]
+]
+[endsect] [/ Members]
+
+[section:non_members Non-members]
+[table
+    [[Name][Definition][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 in post-order
+            fashion.
+        ]
+    ]
+    [
+        [Reverse iterator creation]
+        [[reference__make_pre_order_reverse_iterator]]
+        [
+            Constructs and returns a `post_order_iterator` that will iterate
+            through the specified node and its descendants in reverse pre-order
+            fashion.
+        ]
+    ]
+]
+[endsect]
+
+[endsect] [/ post_order_iterator]
+
Added: sandbox/tree_node/libs/tree_node/doc/ref_pre_order_desc_iter.qbk
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ sandbox/tree_node/libs/tree_node/doc/ref_pre_order_desc_iter.qbk	2013-07-07 14:52:52 EDT (Sun, 07 Jul 2013)	(r84977)
@@ -0,0 +1,284 @@
+[/=============================================================================
+    Copyright (C) 2011-2013 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_desc_iter `pre_order_descendant_iterator<Node,IsReverse>`]
+
+[section Synopsis]
+[reference__pre_order_descendant_iterator]
+[endsect]
+
+[section Description]
+This iterator traverses the descendants of the root node passed to its
+constructor in either pre-order or reverse post-order fashion, e.g. given
+the following tree representation:
+
+``
+      A
+      |
+  C---+---B
+  |       |
++-+-+   +-+-+
+|   |   |   |
+D   E   F   G
+``
+
+By default, this iterator will traverse the tree nodes in the following order:
+
+``
+C D E B F G
+``
+
+However, if `IsReverse` evaluates to __mpl_true__, then this iterator will
+traverse the tree nodes in the following order:
+
+``
+G F B E D C
+``
+[endsect]
+
+[section:definition Where defined]
+``
+#include <__pre_order_descendant_iterator__header__>
+``
+
+To register under __Boost_Typeof__:
+
+``
+#include <__pre_order_descendant_iterator__typeof_header__>
+``
+[endsect]
+
+[section:tpl_param Template Parameters]
+[table
+    [[Parameter][Description][Requirements][Default]]
+    [
+        [`Node`]
+        [The type of a tree node.]
+        [
+            It must model the __Tree_Node__ concept, but it can be
+            `const`-qualified.
+        ]
+        []
+    ]
+    [
+        [`IsReverse`]
+        [
+            Configures the `pre_order_descendant_iterator` to traverse tree
+            nodes in reverse post-order fashion if equivalent to __mpl_true__;
+            otherwise, the nodes will be traversed in pre-order fashion.
+        ]
+        [It must model the __Boolean_Integral_Constant__ concept.]
+        [__mpl_false__]
+    ]
+]
+[endsect]
+
+[section:model_of Model of]
+[itemized_list
+    [__Tree_Node_Descendant_Iterator__]
+    [__Default_Constructible__]
+    [__Copy_Constructible__]
+    [__Assignable__]
+]
+[endsect]
+
+[section Members]
+[table
+    [[Name][Expression][Description][Type requirements]]
+    [
+        [Value type]
+        [``
+            typedef ... value_type;
+        ``]
+        [Defined by the __Tree_Node_Descendant_Iterator__ concept.]
+        []
+    ]
+    [
+        [Reference type]
+        [``
+            typedef ... reference;
+        ``]
+        [Defined by the __Forward_Iterator__ concept.]
+        []
+    ]
+    [
+        [Pointer type]
+        [``
+            typedef ... pointer;
+        ``]
+        [Defined by the __Forward_Iterator__ concept.]
+        []
+    ]
+    [
+        [Distance type]
+        [``
+            typedef ... difference_type;
+        ``]
+        [Defined by the __Forward_Iterator__ concept.]
+        []
+    ]
+    [
+        [Iterator category]
+        [``
+            typedef ... iterator_category;
+        ``]
+        [Defined by the __Forward_Iterator__ concept.]
+        []
+    ]
+    [
+        [Default constructor]
+        [``
+            pre_order_descendant_iterator();
+        ``]
+        [
+            Sets this iterator past-the-end.  Required by the
+            __Default_Constructible__ concept.
+        ]
+        []
+    ]
+    [
+        [Constructor from node]
+        [``
+            explicit pre_order_descendant_iterator(Node&);
+        ``]
+        [Defined by the __Tree_Node_Descendant_Iterator__ concept.]
+        []
+    ]
+    [
+        [Conversion constructor]
+        [``
+            template <typename N, typename I>
+            pre_order_descendant_iterator(
+                pre_order_descendant_iterator<N,I> const&
+            );
+        ``]
+        [
+            Constructs this iterator as a copy of the specified one so that the
+            current node is of type `Node`.
+        ]
+        [
+            [^_tr1_is_convertible_<N,Node>] must evaluate to __tr1_true_type__,
+            and [^_mpl_equal_to_<I,IsReverse>] must evaluate to __mpl_true__.
+        ]
+    ]
+    [
+        [Copy constructor]
+        [``
+            pre_order_descendant_iterator(
+                pre_order_descendant_iterator const&
+            );
+        ``]
+        [Defined by the __Copy_Constructible__ concept.]
+        []
+    ]
+    [
+        [Assignment operator]
+        [``
+            pre_order_descendant_iterator&
+                operator=(pre_order_descendant_iterator const&);
+        ``]
+        [Defined by the __Assignable__ concept.]
+        []
+    ]
+    [
+        [Dereference operator]
+        [``
+            reference operator*() const;
+        ``]
+        [
+            If the `Node` type models the __Associative_Tree_Node__ concept,
+            returns an object whose `first` member refers to the key that is
+            associated with the current node.  If the `Node` type models
+            the __Non_Associative_Tree_Node__ concept, returns the current
+            node.  Required by the __Forward_Iterator__ concept.
+        ]
+        []
+    ]
+    [
+        [Indirection operator]
+        [``
+            pointer operator->() const;
+        ``]
+        [
+            If the `Node` type models the __Associative_Tree_Node__ concept,
+            returns a pointer to the object whose `first` member refers to the
+            key associated with the current node.  If the `Node` type models
+            the __Non_Associative_Tree_Node__ concept, returns a pointer to
+            the current node.  Required by the __Forward_Iterator__ concept.
+        ]
+        []
+    ]
+    [
+        [Pre-increment operator]
+        [``
+            pre_order_descendant_iterator& operator++();
+        ``]
+        [
+            If `IsReverse` evaluates to __mpl_true__, points this iterator
+            to the next node in the reverse post-order traversal of the
+            descendants of the root node that was passed into the constructor;
+            otherwise, points this iterator to the next node in the pre-order
+            traversal of the descendants of the root node that was passed into
+            the constructor.  Returns this iterator.  Required by the
+            __Forward_Iterator__ concept.
+        ]
+        []
+    ]
+    [
+        [Post-increment operator]
+        [``
+            pre_order_descendant_iterator operator++(int);
+        ``]
+        [
+            If `IsReverse` evaluates to __mpl_true__, points this iterator
+            to the next node in the reverse post-order traversal of the
+            descendants of the root node that was passed into the constructor;
+            otherwise, points this iterator to the next node in the pre-order
+            traversal of the descendants of the root node that was passed into
+            the constructor.  Returns a new iterator pointing to the (previous)
+            current node.  Required by the __Forward_Iterator__ concept.
+        ]
+        []
+    ]
+    [
+        [Traversal state conversion operator]
+        [``
+            operator _traversal_state_() const;
+        ``]
+        [Defined by the __Tree_Node_Iterator__ concept.]
+        []
+    ]
+]
+[endsect] [/ Members]
+
+[section:non_members Non-members]
+[table
+    [[Name][Definition][Description]]
+    [
+        [Iterator creation]
+        [[reference__make_pre_order_descendant_iterator]]
+        [
+            Constructs and returns a `pre_order_descendant_iterator` that will
+            iterate through the descendants of the specified node in pre-order
+            fashion.
+        ]
+    ]
+    [
+        [Reverse iterator creation]
+        [[reference__make_post_order_descendant_reverse_iterator]]
+        [
+            Constructs and returns a `pre_order_descendant_iterator` that will
+            iterate through the descendants of the specified node in reverse
+            post-order fashion.
+        ]
+    ]
+]
+[endsect]
+
+[endsect] [/ pre_order_descendant_iterator]
+
Added: sandbox/tree_node/libs/tree_node/doc/ref_pre_order_iterator.qbk
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ sandbox/tree_node/libs/tree_node/doc/ref_pre_order_iterator.qbk	2013-07-07 14:52:52 EDT (Sun, 07 Jul 2013)	(r84977)
@@ -0,0 +1,270 @@
+[/=============================================================================
+    Copyright (C) 2011-2013 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<Node,IsReverse>`]
+
+[section Synopsis]
+[reference__pre_order_iterator]
+[endsect]
+
+[section Description]
+This iterator traverses the root node passed to its constructor--and all its
+descendants--in either pre-order or reverse post-order fashion, e.g. given the
+following tree representation:
+
+``
+      A
+      |
+  C---+---B
+  |       |
++-+-+   +-+-+
+|   |   |   |
+D   E   F   G
+``
+
+By default, this iterator will traverse the tree nodes in the following order:
+
+``
+A C D E B F G
+``
+
+However, if `IsReverse` evaluates to __mpl_true__, then this iterator will
+traverse the tree nodes in the following order:
+``
+G F B E D C A
+``
+[endsect]
+
+[section:definition Where defined]
+``
+#include <__pre_order_iterator__header__>
+``
+
+To register under __Boost_Typeof__:
+
+``
+#include <__pre_order_iterator__typeof_header__>
+``
+[endsect]
+
+[section:tpl_param Template Parameters]
+[table
+    [[Parameter][Description][Requirements][Default]]
+    [
+        [`Node`]
+        [The type of a tree node.]
+        [
+            It must model the __Tree_Node__ concept, but it can be
+            `const`-qualified.
+        ]
+        []
+    ]
+    [
+        [`IsReverse`]
+        [
+            Configures the `pre_order_iterator` to traverse tree nodes in
+            reverse post-order fashion if equivalent to __mpl_true__;
+            otherwise, the nodes will be traversed in pre-order fashion.
+        ]
+        [It must model the __Boolean_Integral_Constant__ concept.]
+        [__mpl_false__]
+    ]
+]
+[endsect]
+
+[section:model_of Model of]
+[itemized_list
+    [__Full_Tree_Node_Iterator__]
+    [__Default_Constructible__]
+    [__Copy_Constructible__]
+    [__Assignable__]
+]
+[endsect]
+
+[section Members]
+[table
+    [[Name][Expression][Description][Type requirements]]
+    [
+        [Value type]
+        [``
+            typedef ... value_type;
+        ``]
+        [Defined by the __Full_Tree_Node_Iterator__ concept.]
+        []
+    ]
+    [
+        [Reference type]
+        [``
+            typedef ... reference;
+        ``]
+        [Defined by the __Forward_Iterator__ concept.]
+        []
+    ]
+    [
+        [Pointer type]
+        [``
+            typedef ... pointer;
+        ``]
+        [Defined by the __Forward_Iterator__ concept.]
+        []
+    ]
+    [
+        [Distance type]
+        [``
+            typedef ... difference_type;
+        ``]
+        [Defined by the __Forward_Iterator__ concept.]
+        []
+    ]
+    [
+        [Iterator category]
+        [``
+            typedef ... iterator_category;
+        ``]
+        [Defined by the __Forward_Iterator__ concept.]
+        []
+    ]
+    [
+        [Default constructor]
+        [``
+            pre_order_iterator();
+        ``]
+        [
+            Sets this iterator past-the-end.  Required by the
+            __Default_Constructible__ concept.
+        ]
+        []
+    ]
+    [
+        [Constructor from node]
+        [``
+            explicit pre_order_iterator(Node&);
+        ``]
+        [Defined by the __Full_Tree_Node_Iterator__ concept.]
+        []
+    ]
+    [
+        [Conversion constructor]
+        [``
+            template <typename N, typename I>
+            pre_order_iterator(pre_order_iterator<N,I> const&);
+        ``]
+        [
+            Constructs this iterator as a copy of the specified one so that the
+            current node is of type `Node`.
+        ]
+        [
+            [^_tr1_is_convertible_<N,Node>] must evaluate to __tr1_true_type__,
+            and [^_mpl_equal_to_<I,IsReverse>] must evaluate to __mpl_true__.
+        ]
+    ]
+    [
+        [Copy constructor]
+        [``
+            pre_order_iterator(pre_order_iterator const&);
+        ``]
+        [Defined by the __Copy_Constructible__ concept.]
+        []
+    ]
+    [
+        [Assignment operator]
+        [``
+            pre_order_iterator& operator=(pre_order_iterator const&);
+        ``]
+        [Defined by the __Assignable__ concept.]
+        []
+    ]
+    [
+        [Dereference operator]
+        [``
+            reference operator*() const;
+        ``]
+        [
+            Returns the current node.  Required by the __Forward_Iterator__
+            concept.
+        ]
+    ]
+    [
+        [Indirection operator]
+        [``
+            pointer operator->() const;
+        ``]
+        [
+            Returns a pointer to the current node.  Required by the
+            __Forward_Iterator__ concept.
+        ]
+        []
+    ]
+    [
+        [Pre-increment operator]
+        [``
+            pre_order_iterator& operator++();
+        ``]
+        [
+            If `IsReverse` evaluates to __mpl_true__, points this iterator to
+            the next node in the reverse post-order traversal of the tree whose
+            root node was passed into the constructor; otherwise, points this
+            iterator to the next node in the pre-order traversal of the tree
+            whose root node was passed into the constructor.  Returns this
+            iterator.  Required by the __Forward_Iterator__ concept.
+        ]
+        []
+    ]
+    [
+        [Post-increment operator]
+        [``
+            pre_order_iterator operator++(int);
+        ``]
+        [
+            If `IsReverse` evaluates to __mpl_true__, points this iterator to
+            the next node in the reverse post-order traversal of the tree whose
+            root node was passed into the constructor; otherwise, points this
+            iterator to the next node in the pre-order traversal of the tree
+            whose root node was passed into the constructor.  Returns a new
+            iterator pointing to the (previous) current node.  Required by the
+            __Forward_Iterator__ concept.
+        ]
+        []
+    ]
+    [
+        [Traversal state conversion operator]
+        [``
+            operator _traversal_state_() const;
+        ``]
+        [Defined by the __Tree_Node_Iterator__ concept.]
+        []
+    ]
+]
+[endsect] [/ Members]
+
+[section:non_members Non-members]
+[table
+    [[Name][Definition][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 in pre-order
+            fashion.
+        ]
+    ]
+    [
+        [Reverse iterator creation]
+        [[reference__make_post_order_reverse_iterator]]
+        [
+            Constructs and returns a `pre_order_iterator` that will iterate
+            through the specified node and its descendants in reverse
+            post-order fashion.
+        ]
+    ]
+]
+[endsect]
+
+[endsect] [/ pre_order_iterator]
+
Added: sandbox/tree_node/libs/tree_node/doc/ref_red_black_balancer.qbk
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ sandbox/tree_node/libs/tree_node/doc/ref_red_black_balancer.qbk	2013-07-07 14:52:52 EDT (Sun, 07 Jul 2013)	(r84977)
@@ -0,0 +1,32 @@
+[/=============================================================================
+    Copyright (C) 2013 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:red_black_balancer `red_black_balancer`]
+
+[section Synopsis]
+[reference__red_black_balancer]
+[endsect]
+
+[section Description]
+TODO.
+[endsect]
+
+[section:definition Where defined]
+``
+#include <__red_black_balancer__header__>
+``
+
+To register under __Boost_Typeof__:
+
+``
+#include <__red_black_balancer__typeof_header__>
+``
+[endsect]
+
+[endsect] [/ red_black_balancer]
+
Added: sandbox/tree_node/libs/tree_node/doc/ref_red_black_flag_key.qbk
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ sandbox/tree_node/libs/tree_node/doc/ref_red_black_flag_key.qbk	2013-07-07 14:52:52 EDT (Sun, 07 Jul 2013)	(r84977)
@@ -0,0 +1,33 @@
+[/=============================================================================
+    Copyright (C) 2013 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:red_black_flag_key `red_flag_key` and `black_flag_key`]
+
+[section Synopsis]
+[reference__red_black_flag_key]
+[endsect]
+
+[section Description]
+Use these types to query the red-or-black flag stored in __Tree_Node__ objects
+of types ultimately inheriting from __tree_node_with_red_black_flag_base__.
+[endsect]
+
+[section:definition Where defined]
+``
+#include <__red_black_flag_key__header__>
+``
+
+To register under __Boost_Typeof__:
+
+``
+#include <__red_black_flag_key__typeof_header__>
+``
+[endsect]
+
+[endsect] [/ red_black_flag_key]
+
Added: sandbox/tree_node/libs/tree_node/doc/ref_traversal_state.qbk
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ sandbox/tree_node/libs/tree_node/doc/ref_traversal_state.qbk	2013-07-07 14:52:52 EDT (Sun, 07 Jul 2013)	(r84977)
@@ -0,0 +1,40 @@
+[/=============================================================================
+    Copyright (C) 2011-2013 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` and `in_order_traversal` values are
+defined for completeness.
+[endsect]
+
+[section:definition Where defined]
+``
+#include <__traversal_state__header__>
+``
+
+To register under __Boost_Typeof__:
+
+``
+#include <__traversal_state__typeof_header__>
+``
+[endsect]
+
+[endsect] [/ traversal_state]
+
Added: sandbox/tree_node/libs/tree_node/doc/ref_tree_node_base.qbk
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ sandbox/tree_node/libs/tree_node/doc/ref_tree_node_base.qbk	2013-07-07 14:52:52 EDT (Sun, 07 Jul 2013)	(r84977)
@@ -0,0 +1,366 @@
+[/=============================================================================
+    Copyright (C) 2011-2013 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_base `tree_node_base<Derived>`]
+
+[section Description]
+All models of the __Base_Tree_Node__ concept that this library provides either
+inherit from this type or declare it as a `friend struct` if they override any
+of its implementation methods.
+[endsect]
+
+[section:definition Where defined]
+``
+#include <__base__header__>
+``
+[endsect]
+
+[section:tpl_param Template Parameters]
+[table
+    [[Parameter][Description][Requirements][Default]]
+    [
+        [`Derived`]
+        [The most descendant type that will inherit from this one.]
+        []
+        []
+    ]
+]
+[endsect]
+
+[section:public_bases Public Base Classes]
+None.
+[endsect]
+
+[section Members]
+[table
+    [[Name][Definition][Scope][Description]]
+    [
+        [Pointer type]
+        [``
+            typedef Derived* pointer;
+        ``]
+        [`public`]
+        [Defined by the __Tree_Node__ concept.]
+    ]
+    [
+        [Pointer-to-const type]
+        [``
+            typedef Derived const* const_pointer;
+        ``]
+        [`public`]
+        [Defined by the __Tree_Node__ concept.]
+    ]
+    [
+        [Derived access]
+        [``
+            const_pointer get_derived() const;
+        ``]
+        [`public`]
+        [Returns `this` as the derived type.]
+    ]
+    [
+        [Derived access]
+        [``
+            pointer get_derived();
+        ``]
+        [`public`]
+        [Returns `this` as the derived type.]
+    ]
+    [
+        [Metadata cloning implementation]
+        [[reference__tree_node_base__clone_metadata_impl]]
+        [`protected`]
+        [
+            Subclass types should override this method to store type-specific
+            data provided by copy assignment as necessary, to be functionally
+            identical to the copy constructor's initializer list.  Does nothing
+            by default.
+        ]
+    ]
+    [
+        [Metadata cloning]
+        [[reference__tree_node_base__clone_metadata]]
+        [`protected`]
+        [
+            Subclass types that store values associated with __data_key__
+            should invoke this method on copy assignment.  Calls the
+            corresponding implementation method.
+        ]
+    ]
+    [
+        [Metadata movement implementation]
+        [[reference__tree_node_base__move_metadata_impl]]
+        [`protected`]
+        [
+            Subclass types should override this method to store type-specific
+            data provided by move assignment as necessary, to be functionally
+            identical to the move constructor's initializer list.  Does nothing
+            by default.
+        ]
+    ]
+    [
+        [Metadata movement]
+        [[reference__tree_node_base__move_metadata]]
+        [`protected`]
+        [
+            Subclass types that store values associated with __data_key__
+            should invoke this method on move assignment.  Calls the
+            corresponding implementation method.
+        ]
+    ]
+    [
+        [Emplacement construction notification implementation]
+        [[reference__tree_node_base__on_post_emplacement_construct]]
+        [`protected`]
+        [
+            Subclass types should override this method to process type-specific
+            data after emplacement construction as necessary.  Does nothing by
+            default.
+        ]
+    ]
+    [
+        [Copy or move notification implementation]
+        [[reference__tree_node_base__on_post_copy_or_move_impl]]
+        [`protected`]
+        [
+            Subclass types should override this method to process type-specific
+            data invalidated during cloning/movement traversal.  Does nothing
+            by default.
+        ]
+    ]
+    [
+        [Copy or move notification]
+        [[reference__tree_node_base__on_post_copy_or_move]]
+        [`protected`]
+        [
+            Subclass types should invoke this method on descendant nodes
+            in post order during cloning/movement traversal.  Calls the
+            corresponding implementation method.
+        ]
+    ]
+    [
+        [Data modified notification implementation]
+        [[reference__tree_node_base__on_post_modify_value_impl]]
+        [`protected`]
+        [
+            Subclass types should override this method if they keep track of
+            modifications to the value that the invoking node associates with
+            the specified key.  Does nothing by default.
+        ]
+    ]
+    [
+        [Data modified notification]
+        [[reference__tree_node_base__on_post_modify_value]]
+        [`protected`]
+        [
+            Subclass types should invoke this method after modifying the value
+            that the invoking node associates with the specified key.  Calls
+            the corresponding implementation method.
+        ]
+    ]
+    [
+        [Data propagated notification implementation]
+        [[reference__tree_node_base__on_post_propagate_value_impl]]
+        [`protected`]
+        [
+            Subclass types should override this method if they keep track of
+            modifications to values that each node in the chain of ancestors
+            associates with the specified key.  Does nothing by default.
+        ]
+    ]
+    [
+        [Data propagated notification]
+        [[reference__tree_node_base__on_post_propagate_value]]
+        [`protected`]
+        [
+            Subclass types should invoke this method after propagating the
+            value that the invoking node associates with the specified key up
+            the chain of ancestors.  Calls the corresponding implementation
+            method.
+        ]
+    ]
+    [
+        [Data propagated once notification implementation]
+        [[reference__tree_node_base__on_post_propagate_value_once_impl]]
+        [`protected`]
+        [
+            Subclass types should override this method if they keep track of
+            modifications to the values that the invoking node and its parent
+            associate with the specified key.  Does nothing by default.
+        ]
+    ]
+    [
+        [Data propagated once notification]
+        [[reference__tree_node_base__on_post_propagate_value_once]]
+        [`protected`]
+        [
+            Subclass types should invoke this method after modifying the values
+            that the invoking node and its parent associate with the specified
+            key.  Calls the corresponding implementation method.
+        ]
+    ]
+    [
+        [Insertion notification implementation]
+        [[reference__tree_node_base__on_post_inserted_impl__true]]
+        [`protected`]
+        [
+            Subclass types should override this method to validate any
+            type-specific data affected by the insertion of the invoking node,
+            pointed to by the specified iterator.  Invoked if iterators
+            pointing to siblings remain valid.  Does nothing by default.
+        ]
+    ]
+    [
+        [Insertion notification implementation]
+        [[reference__tree_node_base__on_post_inserted_impl__false]]
+        [`protected`]
+        [
+            Subclass types should override this method to validate any
+            type-specific data affected by the insertion of the invoking node,
+            pointed to by the specified iterator.  Invoked if iterators
+            pointing to siblings become invalid as well.  Does nothing
+            by default.
+        ]
+    ]
+    [
+        [Insertion notification]
+        [[reference__tree_node_base__on_post_inserted]]
+        [`protected`]
+        [
+            Subclass types should invoke this method after the parent node
+            stores the invoking node.  Calls the corresponding implementation
+            method.
+        ]
+    ]
+    [
+        [Range insertion notification implementation]
+        [[reference__tree_node_base__on_post_insert_impl__true]]
+        [`protected`]
+        [
+            Subclass types should override this method to validate any
+            type-specific data affected by the insertion of the children in
+            the specified range.  Invoked if iterators pointing to existing
+            children remain valid.  Does nothing by default.
+        ]
+    ]
+    [
+        [Range insertion notification implementation]
+        [[reference__tree_node_base__on_post_insert_impl__false]]
+        [`protected`]
+        [
+            Subclass types should override this method to validate any
+            type-specific data affected by the insertion of the children in
+            the specified range.  Invoked if iterators pointing to existing
+            children become invalid as well.  Does nothing by default.
+        ]
+    ]
+    [
+        [Range insertion notification]
+        [[reference__tree_node_base__on_post_insert]]
+        [`protected`]
+        [
+            Subclass types should invoke this method after storing the
+            child nodes in the specified range.  Calls the corresponding
+            implementation method.
+        ]
+    ]
+    [
+        [Erasure notification implementation]
+        [[reference__tree_node_base__on_post_erase_impl__true]]
+        [`protected`]
+        [
+            Subclass types should override this method to validate any
+            type-specific data affected by the removal of one or more of
+            the tree node's children.  Invoked if iterators pointing to
+            siblings remain valid.  Does nothing by default.
+        ]
+    ]
+    [
+        [Erasure notification implementation]
+        [[reference__tree_node_base__on_post_erase_impl__false]]
+        [`protected`]
+        [
+            Subclass types should override this method to validate any
+            type-specific data affected by the removal of one or more of
+            the tree node's children.  Invoked if iterators pointing to
+            siblings become invalid as well.  Does nothing by default.
+        ]
+    ]
+    [
+        [Erasure notification]
+        [[reference__tree_node_base__on_post_erase]]
+        [`protected`]
+        [
+            Subclass types should invoke this method after one or more of
+            the tree node's children are removed.  Calls the corresponding
+            implementation method.
+        ]
+    ]
+    [
+        [Clear notification implementation]
+        [[reference__tree_node_base__on_post_clear_impl]]
+        [`protected`]
+        [
+            Subclass types should override this method to validate any
+            type-specific data affected by the removal of all the tree
+            node's children.  Does nothing by default.
+        ]
+    ]
+    [
+        [Clear notification]
+        [[reference__tree_node_base__on_post_clear]]
+        [`protected`]
+        [
+            Subclass types should invoke this method after all of the
+            tree node's children are removed.  Calls the corresponding
+            implementation method.
+        ]
+    ]
+    [
+        [Left rotation notification implementation]
+        [[reference__tree_node_base__on_post_rotate_left_impl]]
+        [`protected`]
+        [
+            Subclass types should override this method to validate any
+            type-specific data affected by a left rotation on the tree
+            node.  Does nothing by default.
+        ]
+    ]
+    [
+        [Left rotation notification]
+        [[reference__tree_node_base__on_post_rotate_left]]
+        [`protected`]
+        [
+            Subclass types should invoke this method after the tree node is
+            rotated left.  Calls the corresponding implementation method.
+        ]
+    ]
+    [
+        [Right rotation notification implementation]
+        [[reference__tree_node_base__on_post_rotate_right_impl]]
+        [`protected`]
+        [
+            Subclass types should override this method to validate any
+            type-specific data affected by a right rotation on the tree
+            node.  Does nothing by default.
+        ]
+    ]
+    [
+        [Right rotation notification]
+        [[reference__tree_node_base__on_post_rotate_right]]
+        [`protected`]
+        [
+            Subclass types should invoke this method after the tree node is
+            rotated right.  Calls the corresponding implementation method.
+        ]
+    ]
+]
+[endsect] [/ Members]
+
+[endsect] [/ tree_node_base]
+
Added: sandbox/tree_node/libs/tree_node/doc/ref_value_at_key.qbk
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ sandbox/tree_node/libs/tree_node/doc/ref_value_at_key.qbk	2013-07-07 14:52:52 EDT (Sun, 07 Jul 2013)	(r84977)
@@ -0,0 +1,36 @@
+[/=============================================================================
+    Copyright (C) 2013 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:value_at_key `result_of::value_at_key<Node,Key>`]
+
+[section Synopsis]
+[reference__tree_node__result_of__value_at_key]
+[endsect]
+
+[section Description]
+Let `Node` be a (possibly `const`-qualified) __Tree_Node__ model.
+
+Let `Key` be a type for which [^_result_of__has_key_<Node,Key>] evaluates to
+__mpl_true__.
+
+``
+    typedef result_of::value_at_key<Node,Key>::type r;
+``
+
+[*Return type:] The actual element type associated with key type `Key` in
+`Node`.
+[endsect]
+
+[section:definition Where defined]
+``
+#include <__value_at_key__header__>
+``
+[endsect]
+
+[endsect] [/ value_at_key]
+
Added: sandbox/tree_node/libs/tree_node/doc/ref_with_accum_base_gen.qbk
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ sandbox/tree_node/libs/tree_node/doc/ref_with_accum_base_gen.qbk	2013-07-07 14:52:52 EDT (Sun, 07 Jul 2013)	(r84977)
@@ -0,0 +1,95 @@
+[/=============================================================================
+    Copyright (C) 2013 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:with_accumulation_base_gen
+    `with_accumulation_base_gen<BaseGenerator>`
+]
+
+[section Synopsis]
+[reference__with_accumulation_base_gen]
+[endsect]
+
+[section Description]
+Selector that can be passed on to generic functions and/or data structures that
+use __Base_Tree_Node__ models with statistical metadata.  The `BaseGenerator`
+template argument allows the same models to incorporate other data that the
+same or other functions and/or data structures might need.
+[endsect]
+
+[section:definition Where defined]
+``
+#include <__with_accumulation__header__>
+``
+
+To register under __Boost_Typeof__:
+
+``
+#include <__with_accumulation__typeof_header__>
+``
+[endsect]
+
+[section:model_of Model of]
+__Base_Type_Generator__
+[endsect]
+
+[section:tpl_param Template Parameters]
+[table
+    [[Parameter][Description][Default]]
+    [
+        [`BaseGenerator`]
+        [
+            The __Base_Type_Generator__ from whose return type
+            __tree_node_with_accumulation_base__ will inherit.
+        ]
+        []
+    ]
+]
+[endsect]
+
+[section:expressions Expression Semantics]
+Let `Derived` be the type that will inherit from
+__tree_node_with_accumulation_base__.
+
+Let `Key` be the key type.
+
+Let `Data` be the user data type.
+
+Let `BaseGenerator` be a valid `with_accumulation_base_gen` template
+argument.
+
+``
+    typedef _mpl_apply_wrap3_<
+        with_accumulation_base_gen<BaseGenerator>
+      , Derived
+      , Key
+      , Data
+    >::type r;
+``
+
+[*Return type:]
+[^__tree_node_with_accumulation_base__<Derived,BaseGenerator,Key,Data>]
+
+``
+    typedef _mpl_apply_wrap2_<
+        with_accumulation_base_gen<BaseGenerator>
+      , Derived
+      , Data
+    >::type r;
+``
+
+[*Return type:]
+[^__tree_node_with_accumulation_base__<Derived,BaseGenerator,Data,void>]
+
+[endsect]
+
+[section Complexity]
+Compile time.
+[endsect]
+
+[endsect] [/ with_accumulation_base_gen]
+
Added: sandbox/tree_node/libs/tree_node/doc/ref_with_accumulation.qbk
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ sandbox/tree_node/libs/tree_node/doc/ref_with_accumulation.qbk	2013-07-07 14:52:52 EDT (Sun, 07 Jul 2013)	(r84977)
@@ -0,0 +1,216 @@
+[/=============================================================================
+    Copyright (C) 2013 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:with_accumulation
+    `with_accumulation<BaseGenerator,T1,T2,AccumulationKey>`
+]
+
+[section Description]
+In addition to the other operations it inherits from the return type of
+`BaseGenerator`, this __Tree_Node__ adaptor performs statistical computations
+on user data when the node's structure and/or contents are modified, then
+stores the result.
+
+[important
+    Optional __Boost_Accumulators__ parameters are currently unsupported.  This
+    may change once this data structure can detect the availability of
+    __Boost_Parameter__ keywords used by __Boost_Accumulators__ features.
+]
+
+[important
+    Weighted samples are currently unsupported.
+]
+[endsect]
+
+[section:definition Where defined]
+``
+#include <__with_accumulation__header__>
+``
+
+Forward-declared:
+
+``
+#include <__with_accumulation__forward_header__>
+``
+
+To register under __Boost_Typeof__:
+
+``
+#include <__with_accumulation__typeof_header__>
+``
+[endsect]
+
+[section:tpl_param Template Parameters]
+[table
+    [[Parameter][Description][Default]]
+    [
+        [`BaseGenerator`]
+        [
+            The __Base_Type_Generator__ model from whose return type
+            `with_accumulation` will ultimately inherit.
+        ]
+        []
+    ]
+    [
+        [`T1`]
+        [The key type if `T2` is specified; the user data type otherwise.]
+        []
+    ]
+    [
+        [`T2`]
+        [The user data type if specified; ignored otherwise.]
+        [`void`]
+    ]
+    [
+        [`AccumulationKey`]
+        [A template instantiation of __accumulation_key__.]
+        [`tree_node::default_accumulation_key`]
+    ]
+]
+[endsect]
+
+[section:model_of Model of]
+[itemized_list
+    [
+        __Associative_Tree_Node__ if `T2` is specified;
+        __Non_Associative_Tree_Node__ otherwise
+    ]
+    [any other concept that the return type of `BaseGenerator` models]
+]
+[endsect]
+
+[section:public_bases Public Base Classes]
+[reference__with_accumulation__bases]
+[endsect]
+
+[section:members Public Members]
+In addition to those inherited from the return type of `BaseGenerator`, the
+following members are defined:
+
+[table
+    [[Name][Definition][Where defined]]
+    [
+        [Super type]
+        [[reference__with_accumulator__super_t]]
+        [__Tree_Node__]
+    ]
+    [
+        [Emplacement constructor]
+        [[reference__with_accumulation__emplacement_ctor]]
+        [__Tree_Node__]
+    ]
+    [
+        [Emplacement constructor with allocator]
+        [[reference__with_accumulation__emplacement_ctor_w_allocator]]
+        [__Tree_Node__]
+    ]
+    [
+        [Copy constructor]
+        [``
+            with_accumulation(with_accumulation const& copy);
+        ``]
+        [__Copyable_Tree_Node__]
+    ]
+    [
+        [Copy constructor with allocator]
+        [``
+            with_accumulation(
+                with_accumulation const& copy
+              , typename traits::allocator_reference allocator
+            );
+        ``]
+        [__Copyable_Tree_Node__]
+    ]
+    [
+        [Move constructor]
+        [``
+            with_accumulation(with_accumulation&& source);
+        ``]
+        [__Movable_Tree_Node__]
+    ]
+    [
+        [Move constructor with allocator]
+        [``
+            with_accumulation(
+                with_accumulation&& source
+              , typename traits::allocator_reference allocator
+            );
+        ``]
+        [__Movable_Tree_Node__]
+    ]
+    [
+        [Copy assignment operator]
+        [``
+            with_accumulation& operator=(with_accumulation const& copy);
+        ``]
+        [__Assignable__]
+    ]
+    [
+        [Move assignment operator]
+        [``
+            with_accumulation& operator=(with_accumulation&& source);
+        ``]
+        [__Movable__]
+    ]
+]
+[endsect]
+
+[section:non_members Non-members]
+Same as those defined in __tree_node_with_accumulation_base__.
+[endsect]
+
+[section Example]
+A GUI application that renders row numbers needs to know, in sublinear time,
+which variable-height row numbers should be rendered on-screen.  Independently,
+the application must also compute the minimum priority of each row number in
+terms of its own priority and that of its sub-rows.
+
+`GUITable` associates the example key types with the user data that our program
+will need.  `HeightSumKey` is a template instantiation of __accumulation_key__
+that will instruct the corresponding __tree_node_with_accumulation_base__
+template instantiation to store the sum of the `example_keys::row_height`
+values of a node and its children, while `MinPriorityKey` is a template
+instantiation of __accumulation_key__ that will instruct the corresponding
+`with_accumulation` template instantiation to store the minimum of the
+`example_keys::row_priority` values of a node and its children.
+
+`GUIBinaryCompare` is a __Binary_Predicate__ model that implements two function
+call operators.  The first one determines whether or not __binary_descendant__
+should traverse the left branch; the second one determines whether or not the
+algorithm should traverse the right branch.
+
+[example__gui__types]
+
+With the boilerplate code out of the way, we can define the `GUINode` data
+structure.  The __binary_node_base_gen__ type induces `GUINode` to model the
+__Binary_Tree_Node__ concept, while the __tree_node_with_accumulation_base__
+and `with_accumulation` template instantiations augment `GUINode` with the
+values associated with `HeightSumKey` and `MinPriorityKey`, respectively.
+
+[example__gui__binary_node__type]
+
+The syntax for creating the root node and its descendants is no different for
+the `GUINode` type than it is for [^_binary_node_<GUITable>].  The accumulation
+values are calculated behind the scenes.
+
+[example__gui__binary_node__build]
+
+Using the __binary_descendant__ algorithm with `GUIBinaryCompare` enables the
+application to find the row number that occupies the space a given number of
+pixels from the top in logarithmic time.  A traversal through the nodes will
+also reveal that the tree exhibits the heap-order property with respect to
+`MinPriorityKey` values.
+
+[example__gui__binary_node__test]
+
+The complete program source can be found here:
+<__example_type_definitions_hpp__> and <__test_binary_node_cpp__>
+[endsect]
+
+[endsect] [/ with_accumulation]
+
Added: sandbox/tree_node/libs/tree_node/doc/ref_with_accumulation_base.qbk
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ sandbox/tree_node/libs/tree_node/doc/ref_with_accumulation_base.qbk	2013-07-07 14:52:52 EDT (Sun, 07 Jul 2013)	(r84977)
@@ -0,0 +1,275 @@
+[/=============================================================================
+    Copyright (C) 2013 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:with_accumulation_base
+    `with_accumulation_base<
+        Derived
+      , BaseGenerator
+      , T1
+      , T2
+      , Key
+      , Tag
+      , IncludesAllDescendants
+      , IncludesRoot
+      , Value
+    >`
+]
+
+[section Description]
+The __tree_node_with_accumulation__ class template inherits its functionality
+from this class template.  They differ only with regard to template parameters:
+the __tree_node_with_accumulation__ class template is meant to be used directly
+as a data structure, while `with_accumulation_base` is more suitable as a base
+class template from which other __Tree_Node__ adaptor class templates can
+derive via the __tree_node_with_accumulation_base_gen__
+__Base_Type_Generator__.
+
+[important
+    Optional __Boost_Accumulators__ parameters are currently unsupported.  This
+    may change once this data structure can detect the availability of
+    __Boost_Parameter__ keywords used by __Boost_Accumulators__ features.
+]
+
+[important
+    Weighted samples are currently unsupported.
+]
+[endsect]
+
+[section:definition Where defined]
+``
+#include <__with_accumulation__header__>
+``
+
+Forward-declared:
+
+``
+#include <__with_accumulation__forward_header__>
+``
+
+To register under __Boost_Typeof__:
+
+``
+#include <__with_accumulation__typeof_header__>
+``
+[endsect]
+
+[section:tpl_param Template Parameters]
+[table
+    [[Parameter][Description][Requirements]]
+    [
+        [`Derived`]
+        [The most descendant type that will inherit from this one.]
+        []
+    ]
+    [
+        [`BaseGenerator`]
+        [
+            The __Base_Type_Generator__ from whose return type
+            `with_accumulation_base` will inherit.
+        ]
+        []
+    ]
+    [
+        [`T1`]
+        [The key type if `T2` is not `void`; the user data type otherwise.]
+        []
+    ]
+    [
+        [`T2`]
+        [The user data type if not `void`; ignored otherwise.]
+        []
+    ]
+    [
+        [`Key`]
+        [
+            The key type associated with the value on which this __Tree_Node__
+            adaptor will perform statistical computations.
+        ]
+        [
+            [^_has_key_<Key>(base)] must return `true` for some object `base`
+            of the return type of `BaseGenerator`.
+        ]
+    ]
+    [
+        [`Tag`]
+        [
+            The type that determines what this __Tree_Node__ adaptor will
+            compute.
+        ]
+        [It must be a valid __Boost_Accumulators__ feature.]
+    ]
+    [
+        [`IncludesAllDescendants`]
+        [
+            A __Boolean_Integral_Constant__ that determines whether this
+            __Tree_Node__ adaptor will involve all descendants (if set to
+            __mpl_true__) or just the immediate children (if set to
+            __mpl_false__) in its computations.
+        ]
+        []
+    ]
+    [
+        [`IncludesRoot`]
+        [
+            A __Boolean_Integral_Constant__ that determines whether or not this
+            __Tree_Node__ adaptor will include the value of the root node in
+            its computations.
+        ]
+        []
+    ]
+    [
+        [`Value`]
+        [
+            The type of the result of the computation performed by this
+            __Tree_Node__ adaptor if specified; ignored if `void`.
+        ]
+        []
+    ]
+]
+[endsect]
+
+[section:model_of Model of]
+[itemized_list
+    [
+        __Associative_Tree_Node__ if `T2` is specified;
+        __Non_Associative_Tree_Node__ otherwise
+    ]
+    [__Base_Tree_Node__]
+    [any other concept that the return type of `BaseGenerator` models]
+]
+[endsect]
+
+[section:public_bases Public Base Classes]
+[reference__with_accumulation_base__bases]
+[endsect]
+
+[section:members Members]
+In addition to those inherited from the return type of `BaseGenerator`, the
+following members are defined:
+
+[table
+    [[Name][Definition][Scope][Description]]
+    [
+        [Emplacement constructor]
+        [[reference__with_accumulation_base__emplacement_ctor]]
+        [`protected`]
+        [Defined by the __Tree_Node__ concept.]
+    ]
+    [
+        [Emplacement constructor with allocator]
+        [[reference__with_accumulation_base__emplacement_ctor_w_allocator]]
+        [`protected`]
+        [Defined by the __Tree_Node__ concept.]
+    ]
+    [
+        [Derived copy constructor]
+        [[reference__with_accumulation_base__derived_copy_ctor]]
+        [`protected`]
+        [Defined by the __Base_Tree_Node__ concept.]
+    ]
+    [
+        [Derived copy constructor with allocator]
+        [[reference__with_accumulation_base__derived_copy_ctor_w_allocator]]
+        [`protected`]
+        [Defined by the __Base_Tree_Node__ concept.]
+    ]
+    [
+        [Derived move constructor]
+        [``
+            with_accumulation_base(Derived&&);
+        ``]
+        [`protected`]
+        [Defined by the __Base_Tree_Node__ concept.]
+    ]
+    [
+        [Derived move constructor with allocator]
+        [``
+            with_accumulation_base(
+                Derived&& source
+              , typename traits::allocator_reference allocator
+            );
+        ``]
+        [`protected`]
+        [Defined by the __Base_Tree_Node__ concept.]
+    ]
+    [
+        [Accumulation member read-only access]
+        [[reference__with_accumulation_base__key_value_operator]]
+        [`public`]
+        [
+            Returns the accumulated value of the statistical computations
+            performed by this __Tree_Node__ adaptor.
+        ]
+    ]
+]
+[endsect]
+
+[section:non_members Non-members]
+In addition to those inherited from the return type of `BaseGenerator`, the
+following non-members are defined.
+
+[table
+    [[Name][Definition][Where defined]]
+    [
+        [Accumulation key-value read-only access]
+        [[reference__with_accumulation_base__at_key]]
+        [__Tree_Node__]
+    ]
+]
+[endsect]
+
+[section Example]
+A GUI application that renders row numbers needs to know, in sublinear time,
+which variable-height row numbers should be rendered on-screen.  Independently,
+the application must also compute the minimum priority of each row number in
+terms of its own priority and that of its sub-rows.
+
+`GUITable` associates the example key types with the user data that our program
+will need.  `HeightSumKey` is a template instantiation of __accumulation_key__
+that will instruct the corresponding `with_accumulation_base` template
+instantiation to store the sum of the `example_keys::row_height` values of a
+node and its children, while `MinPriorityKey` is a template instantiation of
+__accumulation_key__ that will instruct the corresponding
+__tree_node_with_accumulation__ template instantiation to store the minimum of
+the `example_keys::row_priority` values of a node and its children.
+
+`GUIBinaryCompare` is a __Binary_Predicate__ model that implements two function
+call operators.  The first one determines whether or not __binary_descendant__
+should traverse the left branch; the second one determines whether or not the
+algorithm should traverse the right branch.
+
+[example__gui__types]
+
+With the boilerplate code out of the way, we can define the `GUINode` data
+structure.  The __binary_node_base_gen__ type induces `GUINode` to model the
+__Binary_Tree_Node__ concept, while the __tree_node_with_accumulation__ and
+`with_accumulation_base` template instantiations augment `GUINode` with the
+values associated with `MinPriorityKey` and `HeightSumKey`, respectively.
+
+[example__gui__binary_node__type]
+
+The syntax for creating the root node and its descendants is no different for
+the `GUINode` type than it is for [^_binary_node_<GUITable>].  The accumulation
+values are calculated behind the scenes.
+
+[example__gui__binary_node__build]
+
+Using the __binary_descendant__ algorithm with `GUIBinaryCompare` enables the
+application to find the row number that occupies the space a given number of
+pixels from the top in logarithmic time.  A traversal through the nodes will
+also reveal that the tree exhibits the heap-order property with respect to
+`MinPriorityKey` values.
+
+[example__gui__binary_node__test]
+
+The complete program source can be found here:
+<__example_type_definitions_hpp__> and <__test_binary_node_cpp__>
+[endsect]
+
+[endsect] [/ with_accumulation_base]
+
Added: sandbox/tree_node/libs/tree_node/doc/ref_with_accumulation_gen.qbk
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ sandbox/tree_node/libs/tree_node/doc/ref_with_accumulation_gen.qbk	2013-07-07 14:52:52 EDT (Sun, 07 Jul 2013)	(r84977)
@@ -0,0 +1,87 @@
+[/=============================================================================
+    Copyright (C) 2013 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:with_accumulation_gen `with_accumulation_gen<BaseGenerator>`]
+
+[section Synopsis]
+[reference__with_accumulation_gen]
+[endsect]
+
+[section Description]
+Selector that can be passed on to generic functions and/or data structures that
+use __Tree_Node__ models with statistical metadata.  The `BaseGenerator`
+template argument allows the same models to incorporate other data that the
+same or other functions and/or data structures might need.
+[endsect]
+
+[section:definition Where defined]
+``
+#include <__with_accumulation__header__>
+``
+
+To register under __Boost_Typeof__:
+
+``
+#include <__with_accumulation__typeof_header__>
+``
+[endsect]
+
+[section:model_of Model of]
+__Node_Type_Generator__
+[endsect]
+
+[section:tpl_param Template Parameters]
+[table
+    [[Parameter][Description][Default]]
+    [
+        [`BaseGenerator`]
+        [
+            The __Base_Type_Generator__ from whose return type
+            __tree_node_with_accumulation__ will ultimately inherit.
+        ]
+        []
+    ]
+]
+[endsect]
+
+[section:expressions Expression Semantics]
+Let `Key` be the key type.
+
+Let `Data` be the user data type.
+
+Let `BaseGenerator` be a valid `with_accumulation_gen` template argument.
+
+``
+    typedef _mpl_apply_wrap2_<
+        with_accumulator_gen<BaseGenerator>
+      , Key
+      , Data
+    >::type r;
+``
+
+[*Return type:]
+[^_tree_node_with_accumulation_<BaseGenerator,Key,Data>]
+
+``
+    typedef _mpl_apply_wrap1_<
+        with_accumulation_gen<BaseGenerator>
+      , Data
+    >::type r;
+``
+
+[*Return type:]
+[^_tree_node_with_accumulation_<BaseGenerator,Data,void>]
+
+[endsect]
+
+[section Complexity]
+Compile time.
+[endsect]
+
+[endsect] [/ with_accumulation_gen]
+
Added: sandbox/tree_node/libs/tree_node/doc/ref_with_count.qbk
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ sandbox/tree_node/libs/tree_node/doc/ref_with_count.qbk	2013-07-07 14:52:52 EDT (Sun, 07 Jul 2013)	(r84977)
@@ -0,0 +1,152 @@
+[/=============================================================================
+    Copyright (C) 2012-2013 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:with_count `with_count<BaseGenerator,T1,T2,Count>`]
+
+[section Description]
+The [*count] of a tree node can be defined as the number of itself plus its
+descendants.  In addition to the operations it inherits from the return type
+of `BaseGenerator`, this __Tree_Node__ adaptor provides constant-time access
+to the count of the node by updating this information after structural
+modifications have been performed.
+[endsect]
+
+[section:definition Where defined]
+``
+#include <__with_count__header__>
+``
+
+Forward-declared:
+
+``
+#include <__with_count__forward_header__>
+``
+
+To register under __Boost_Typeof__:
+
+``
+#include <__with_count__typeof_header__>
+``
+[endsect]
+
+[section:tpl_param Template Parameters]
+[table
+    [[Parameter][Description][Default]]
+    [
+        [`BaseGenerator`]
+        [
+            The __Base_Type_Generator__ from whose return type `with_count`
+            will ultimately inherit.
+        ]
+        []
+    ]
+    [
+        [`T1`]
+        [The key type if `T2` is not `void`; the user data type otherwise.]
+        []
+    ]
+    [
+        [`T2`]
+        [The user data type if not `void`; ignored otherwise.]
+        [`void`]
+    ]
+    [
+        [`Count`]
+        [The count type.]
+        [`std::size_t`]
+    ]
+]
+[endsect]
+
+[section:model_of Model of]
+[itemized_list
+    [
+        __Associative_Tree_Node__ if `T2` is not `void`;
+        __Non_Associative_Tree_Node__ otherwise
+    ]
+    [any other concept that the return type of `BaseGenerator` models]
+]
+[endsect]
+
+[section:public_bases Public Base Classes]
+[reference__with_count__bases]
+[endsect]
+
+[section:members Public Members]
+In addition to those inherited from the return type of `BaseGenerator`, the
+following members are defined:
+
+[table
+    [[Name][Definition][Where defined]]
+    [
+        [Emplacement constructor]
+        [[reference__with_count__emplacement_ctor]]
+        [__Tree_Node__]
+    ]
+    [
+        [Emplacement constructor with allocator]
+        [[reference__with_count__emplacement_ctor_w_allocator]]
+        [__Tree_Node__]
+    ]
+    [
+        [Copy constructor]
+        [``
+            with_count(with_count const& copy);
+        ``]
+        [__Copyable_Tree_Node__]
+    ]
+    [
+        [Copy constructor with allocator]
+        [``
+            with_count(
+                with_count const& copy
+              , typename traits::allocator_reference allocator
+            );
+        ``]
+        [__Copyable_Tree_Node__]
+    ]
+    [
+        [Move constructor]
+        [``
+            with_count(with_count&& source);
+        ``]
+        [__Movable_Tree_Node__]
+    ]
+    [
+        [Move constructor with allocator]
+        [``
+            with_count(
+                with_count&& source
+              , typename traits::allocator_reference allocator
+            );
+        ``]
+        [__Movable_Tree_Node__]
+    ]
+    [
+        [Copy assignment operator]
+        [``
+            with_count& operator=(with_count const&);
+        ``]
+        [__Assignable__]
+    ]
+    [
+        [Move assignment operator]
+        [``
+            with_count& operator=(with_count&&);
+        ``]
+        [__Movable__]
+    ]
+]
+[endsect]
+
+[section:non_members Non-members]
+Same as those defined in __tree_node_with_count_base__.
+[endsect]
+
+[endsect] [/ with_count]
+
Added: sandbox/tree_node/libs/tree_node/doc/ref_with_count_base.qbk
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ sandbox/tree_node/libs/tree_node/doc/ref_with_count_base.qbk	2013-07-07 14:52:52 EDT (Sun, 07 Jul 2013)	(r84977)
@@ -0,0 +1,155 @@
+[/=============================================================================
+    Copyright (C) 2012-2013 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:with_count_base `with_count_base<Derived,BaseGenerator,T1,T2,Count>`]
+
+[section Description]
+The __tree_node_with_count__ class template inherits its functionality from
+this class template.  They differ only with regard to template parameters: the
+__tree_node_with_count__ class template is meant to be used directly as a data
+structure, while `with_count_base` is more suitable as a base class template
+from which other __Tree_Node__ adaptor class templates can derive via the
+__tree_node_with_count_base_gen__ __Base_Type_Generator__.
+[endsect]
+
+[section:definition Where defined]
+``
+#include <__with_count__header__>
+``
+
+Forward-declared:
+
+``
+#include <__with_count__forward_header__>
+``
+
+To register under __Boost_Typeof__:
+
+``
+#include <__with_count__typeof_header__>
+``
+[endsect]
+
+[section:tpl_param Template Parameters]
+[table
+    [[Parameter][Description]]
+    [
+        [`Derived`]
+        [The most descendant type that will inherit from this one.]
+    ]
+    [
+        [`BaseGenerator`]
+        [
+            The __Base_Type_Generator__ from whose return type
+            `with_count_base` will inherit.
+        ]
+    ]
+    [
+        [`T1`]
+        [The key type if `T2` is not `void`; the user data type otherwise.]
+    ]
+    [
+        [`T2`]
+        [The user data type if not `void`; ignored otherwise.]
+    ]
+    [
+        [`Count`]
+        [The count type.]
+    ]
+]
+[endsect]
+
+[section:model_of Model of]
+[itemized_list
+    [
+        __Associative_Tree_Node__ if `T2` is not `void`;
+        __Non_Associative_Tree_Node__ otherwise
+    ]
+    [__Base_Tree_Node__]
+    [any other concept that the return type of `BaseGenerator` models]
+]
+[endsect]
+
+[section:public_bases Public Base Classes]
+[reference__with_count_base__bases]
+[endsect]
+
+[section:members Members]
+In addition to those inherited from the return type of `BaseGenerator`, the
+following members are defined:
+
+[table
+    [[Name][Definition][Scope][Description]]
+    [
+        [Emplacement constructor]
+        [[reference__with_count_base__emplacement_ctor]]
+        [`protected`]
+        [Defined by the __Tree_Node__ concept.]
+    ]
+    [
+        [Emplacement constructor with allocator]
+        [[reference__with_count_base__emplacement_ctor_w_allocator]]
+        [`protected`]
+        [Defined by the __Tree_Node__ concept.]
+    ]
+    [
+        [Derived copy constructor]
+        [[reference__with_count_base__derived_copy_ctor]]
+        [`protected`]
+        [Defined by the __Base_Tree_Node__ concept.]
+    ]
+    [
+        [Derived copy constructor with allocator]
+        [[reference__with_count_base__derived_copy_ctor_w_allocator]]
+        [`protected`]
+        [Defined by the __Base_Tree_Node__ concept.]
+    ]
+    [
+        [Derived move constructor]
+        [``
+            with_count_base(Derived&&);
+        ``]
+        [`protected`]
+        [Defined by the __Base_Tree_Node__ concept.]
+    ]
+    [
+        [Derived move constructor with allocator]
+        [``
+            with_count_base(
+                Derived&& source
+              , typename traits::allocator_reference allocator
+            );
+        ``]
+        [`protected`]
+        [Defined by the __Base_Tree_Node__ concept.]
+    ]
+    [
+        [Count member read-only access]
+        [[reference__with_count_base__key_value_operator]]
+        [`public`]
+        [Returns the count of this tree node.]
+    ]
+]
+[endsect]
+
+[section:non_members Non-members]
+In addition to those inherited from the return type of `BaseGenerator`, the
+following non-members are defined.
+
+[table
+    [[Name][Definition][Where defined]]
+    [
+        [Count read-only access]
+        [[reference__with_count_base__at_key]]
+        [__Tree_Node__]
+    ]
+]
+[endsect]
+
+[endsect] [/ with_count_base]
+
Added: sandbox/tree_node/libs/tree_node/doc/ref_with_count_base_gen.qbk
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ sandbox/tree_node/libs/tree_node/doc/ref_with_count_base_gen.qbk	2013-07-07 14:52:52 EDT (Sun, 07 Jul 2013)	(r84977)
@@ -0,0 +1,100 @@
+[/=============================================================================
+    Copyright (C) 2012-2013 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:with_count_base_gen `with_count_base_gen<BaseGenerator>`]
+
+[section Synopsis]
+[reference__with_count_base_gen]
+[endsect]
+
+[section Description]
+Selector that can be passed on to generic functions and/or data structures that
+use __Base_Tree_Node__ models with constant-time access to node counts.  The
+`BaseGenerator` template argument allows the same models to incorporate other
+data that the same or other functions and/or data structures might need.
+[endsect]
+
+[section:definition Where defined]
+``
+#include <__with_count__header__>
+``
+
+To register under __Boost_Typeof__:
+
+``
+#include <__with_count__typeof_header__>
+``
+[endsect]
+
+[section:model_of Model of]
+__Base_Type_Generator__
+[endsect]
+
+[section:tpl_param Template Parameters]
+[table
+    [[Parameter][Description][Default]]
+    [
+        [`BaseGenerator`]
+        [
+            The __Base_Type_Generator__ from whose return type
+            __tree_node_with_count_base__ will inherit.
+        ]
+        []
+    ]
+    [
+        [`Count`]
+        [The count type.]
+        [`std::size_t`]
+    ]
+]
+[endsect]
+
+[section:expressions Expression Semantics]
+Let `Derived` be the type that will inherit from
+__tree_node_with_count_base__.
+
+Let `Key` be the key type.
+
+Let `Data` be the user data type.
+
+Let `BaseGenerator` be a valid first template argument for
+`with_count_base_gen`.
+
+Let `Count` be the count type.
+
+``
+    typedef _mpl_apply_wrap3_<
+        with_count_base_gen<BaseGenerator,Count>
+      , Derived
+      , Key
+      , Data
+    >::type r;
+``
+
+[*Return type:]
+[^_tree_node_with_count_base_<Derived,BaseGenerator,Key,Data,Count>]
+
+``
+    typedef _mpl_apply_wrap2_<
+        with_count_base_gen<BaseGenerator,Count>
+      , Derived
+      , Data
+    >::type r;
+``
+
+[*Return type:]
+[^_tree_node_with_count_base_<Derived,BaseGenerator,Data,void,Count>]
+
+[endsect]
+
+[section Complexity]
+Compile time.
+[endsect]
+
+[endsect] [/ with_count_base_gen]
+
Added: sandbox/tree_node/libs/tree_node/doc/ref_with_count_gen.qbk
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ sandbox/tree_node/libs/tree_node/doc/ref_with_count_gen.qbk	2013-07-07 14:52:52 EDT (Sun, 07 Jul 2013)	(r84977)
@@ -0,0 +1,94 @@
+[/=============================================================================
+    Copyright (C) 2012-2013 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:with_count_gen `with_count_gen<BaseGenerator>`]
+
+[section Synopsis]
+[reference__with_count_gen]
+[endsect]
+
+[section Description]
+Selector that can be passed on to generic functions and/or data structures that
+use __Tree_Node__ models with constant-time access to node counts.  The
+`BaseGenerator` template argument allows the same models to incorporate other
+data that the same or other functions and/or data structures might need.
+[endsect]
+
+[section:definition Where defined]
+``
+#include <__with_count__header__>
+``
+
+To register under __Boost_Typeof__:
+
+``
+#include <__with_count__typeof_header__>
+``
+[endsect]
+
+[section:model_of Model of]
+__Node_Type_Generator__
+[endsect]
+
+[section:tpl_param Template Parameters]
+[table
+    [[Parameter][Description][Default]]
+    [
+        [`BaseGenerator`]
+        [
+            The __Base_Type_Generator__ from whose return type
+            __tree_node_with_count__ will ultimately inherit.
+        ]
+        []
+    ]
+    [
+        [`Count`]
+        [The count type.]
+        [`std::size_t`]
+    ]
+]
+[endsect]
+
+[section:expressions Expression Semantics]
+Let `Key` be the key type.
+
+Let `Data` be the user data type.
+
+Let `BaseGenerator` be a valid first template argument for `with_count_gen`.
+
+Let `Count` be the count type.
+
+``
+    typedef _mpl_apply_wrap2_<
+        with_count_gen<BaseGenerator,Count>
+      , Key
+      , Data
+    >::type r;
+``
+
+[*Return type:]
+[^_tree_node_with_count_<BaseGenerator,Key,Data,Count>]
+
+``
+    typedef _mpl_apply_wrap1_<
+        with_count_gen<BaseGenerator,Count>
+      , Data
+    >::type r;
+``
+
+[*Return type:]
+[^_tree_node_with_count_<BaseGenerator,Data,void,Count>]
+
+[endsect]
+
+[section Complexity]
+Compile time.
+[endsect]
+
+[endsect] [/ with_count_gen]
+
Added: sandbox/tree_node/libs/tree_node/doc/ref_with_height.qbk
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ sandbox/tree_node/libs/tree_node/doc/ref_with_height.qbk	2013-07-07 14:52:52 EDT (Sun, 07 Jul 2013)	(r84977)
@@ -0,0 +1,153 @@
+[/=============================================================================
+    Copyright (C) 2011-2013 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:with_height `with_height<BaseGenerator,T1,T2,Height>`]
+
+[section Description]
+The [*height] of a tree node can be defined as the magnitude of the difference
+between its ply and that of its deepest descendant.  In addition to the
+operations it inherits from the return type of `BaseGenerator`, this
+__Tree_Node__ adaptor provides constant-time access to the height of the node
+by updating this information after structural modifications have been
+performed.
+[endsect]
+
+[section:definition Where defined]
+``
+#include <__with_height__header__>
+``
+
+Forward-declared:
+
+``
+#include <__with_height__forward_header__>
+``
+
+To register under __Boost_Typeof__:
+
+``
+#include <__with_height__typeof_header__>
+``
+[endsect]
+
+[section:tpl_param Template Parameters]
+[table
+    [[Parameter][Description][Default]]
+    [
+        [`BaseGenerator`]
+        [
+            The __Base_Type_Generator__ from whose return type `with_height`
+            will ultimately inherit.
+        ]
+        []
+    ]
+    [
+        [`T1`]
+        [The key type if `T2` is not `void`; the user data type otherwise.]
+        []
+    ]
+    [
+        [`T2`]
+        [The user data type if not `void`; ignored otherwise.]
+        [`void`]
+    ]
+    [
+        [`Height`]
+        [The height type.]
+        [`std::size_t`]
+    ]
+]
+[endsect]
+
+[section:model_of Model of]
+[itemized_list
+    [
+        __Associative_Tree_Node__ if `T2` is not `void`;
+        __Non_Associative_Tree_Node__ otherwise
+    ]
+    [any other concept that the return type of `BaseGenerator` models]
+]
+[endsect]
+
+[section:public_bases Public Base Classes]
+[reference__with_height__bases]
+[endsect]
+
+[section:members Public Members]
+In addition to those inherited from the return type of `BaseGenerator`, the
+following members are defined:
+
+[table
+    [[Name][Definition][Where defined]]
+    [
+        [Emplacement constructor]
+        [[reference__with_height__emplacement_ctor]]
+        [__Tree_Node__]
+    ]
+    [
+        [Emplacement constructor with allocator]
+        [[reference__with_height__emplacement_ctor_w_allocator]]
+        [__Tree_Node__]
+    ]
+    [
+        [Copy constructor]
+        [``
+            with_height(with_height const& copy);
+        ``]
+        [__Copyable_Tree_Node__]
+    ]
+    [
+        [Copy constructor with allocator]
+        [``
+            with_height(
+                with_height const& copy
+              , typename traits::allocator_reference allocator
+            );
+        ``]
+        [__Copyable_Tree_Node__]
+    ]
+    [
+        [Move constructor]
+        [``
+            with_height(with_height&& source);
+        ``]
+        [__Movable_Tree_Node__]
+    ]
+    [
+        [Move constructor with allocator]
+        [``
+            with_height(
+                with_height&& source
+              , typename traits::allocator_reference allocator
+            );
+        ``]
+        [__Movable_Tree_Node__]
+    ]
+    [
+        [Copy assignment operator]
+        [``
+            with_height& operator=(with_height const& copy);
+        ``]
+        [__Assignable__]
+    ]
+    [
+        [Move assignment operator]
+        [``
+            with_height& operator=(with_height&& source);
+        ``]
+        [__Movable__]
+    ]
+]
+[endsect]
+
+[section:non_members Non-members]
+Same as those defined in __tree_node_with_height_base__.
+[endsect]
+
+[endsect] [/ with_height]
+
Added: sandbox/tree_node/libs/tree_node/doc/ref_with_height_base.qbk
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ sandbox/tree_node/libs/tree_node/doc/ref_with_height_base.qbk	2013-07-07 14:52:52 EDT (Sun, 07 Jul 2013)	(r84977)
@@ -0,0 +1,157 @@
+[/=============================================================================
+    Copyright (C) 2011-2013 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:with_height_base
+    `with_height_base<Derived,BaseGenerator,T1,T2,Height>`
+]
+
+[section Description]
+The __tree_node_with_height__ class template inherits its functionality from
+this class template.  They differ only with regard to template parameters: the
+__tree_node_with_height__ class template is meant to be used directly as a data
+structure, while `with_height_base` is more suitable as a base class template
+from which other __Tree_Node__ adaptor class templates can derive via the
+__tree_node_with_height_base_gen__ __Base_Type_Generator__.
+[endsect]
+
+[section:definition Where defined]
+``
+#include <__with_height__header__>
+``
+
+Forward-declared:
+
+``
+#include <__with_height__forward_header__>
+``
+
+To register under __Boost_Typeof__:
+
+``
+#include <__with_height__typeof_header__>
+``
+[endsect]
+
+[section:tpl_param Template Parameters]
+[table
+    [[Parameter][Description]]
+    [
+        [`Derived`]
+        [The most descendant type that will inherit from this one.]
+    ]
+    [
+        [`BaseGenerator`]
+        [
+            The __Base_Type_Generator__ from whose return type
+            `with_height_base` will inherit.
+        ]
+    ]
+    [
+        [`T1`]
+        [The key type if `T2` is not `void`; the user data type otherwise.]
+    ]
+    [
+        [`T2`]
+        [The user data type if not `void`; ignored otherwise.]
+    ]
+    [
+        [`Height`]
+        [The height type.]
+    ]
+]
+[endsect]
+
+[section:model_of Model of]
+[itemized_list
+    [
+        __Associative_Tree_Node__ if `T2` is not `void`;
+        __Non_Associative_Tree_Node__ otherwise
+    ]
+    [__Base_Tree_Node__]
+    [any other concept that the return type of `BaseGenerator` models]
+]
+[endsect]
+
+[section:public_bases Public Base Classes]
+[reference__with_height_base__bases]
+[endsect]
+
+[section:members Members]
+In addition to those inherited from the return type of `BaseGenerator`, the
+following members are defined:
+
+[table
+    [[Name][Definition][Scope][Description]]
+    [
+        [Emplacement constructor]
+        [[reference__with_height_base__emplacement_ctor]]
+        [`protected`]
+        [Defined by the __Tree_Node__ concept.]
+    ]
+    [
+        [Emplacement constructor with allocator]
+        [[reference__with_height_base__emplacement_ctor_w_allocator]]
+        [`protected`]
+        [Defined by the __Tree_Node__ concept.]
+    ]
+    [
+        [Derived copy constructor]
+        [[reference__with_height_base__derived_copy_ctor]]
+        [`protected`]
+        [Defined by the __Base_Tree_Node__ concept.]
+    ]
+    [
+        [Derived copy constructor with allocator]
+        [[reference__with_height_base__derived_copy_ctor_w_allocator]]
+        [`protected`]
+        [Defined by the __Base_Tree_Node__ concept.]
+    ]
+    [
+        [Derived move constructor]
+        [``
+            with_height_base(Derived&& source);
+        ``]
+        [`protected`]
+        [Defined by the __Base_Tree_Node__ concept.]
+    ]
+    [
+        [Derived move constructor with allocator]
+        [``
+            with_height_base(
+                Derived&& source
+              , typename traits::allocator_reference allocator
+            );
+        ``]
+        [`protected`]
+        [Defined by the __Base_Tree_Node__ concept.]
+    ]
+    [
+        [Height member read-only access]
+        [[reference__with_height_base__key_value_operator]]
+        [`public`]
+        [Returns the height of this tree node.]
+    ]
+]
+[endsect]
+
+[section:non_members Non-members]
+In addition to those inherited from the return type of `BaseGenerator`, the
+following non-members are defined.
+
+[table
+    [[Name][Definition][Where defined]]
+    [
+        [Height read-only access]
+        [[reference__with_height_base__at_key]]
+        [__Tree_Node__]
+    ]
+]
+[endsect]
+
+[endsect] [/ with_height_base]
+
Added: sandbox/tree_node/libs/tree_node/doc/ref_with_height_base_gen.qbk
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ sandbox/tree_node/libs/tree_node/doc/ref_with_height_base_gen.qbk	2013-07-07 14:52:52 EDT (Sun, 07 Jul 2013)	(r84977)
@@ -0,0 +1,100 @@
+[/=============================================================================
+    Copyright (C) 2011-2013 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:with_height_base_gen `with_height_base_gen<BaseGenerator>`]
+
+[section Synopsis]
+[reference__with_height_base_gen]
+[endsect]
+
+[section Description]
+Selector that can be passed on to generic functions and/or data structures that
+use __Base_Tree_Node__ models with constant-time access to node heights.  The
+`BaseGenerator` template argument allows the same models to incorporate other
+data that the same or other functions and/or data structures might need.
+[endsect]
+
+[section:definition Where defined]
+``
+#include <__with_height__header__>
+``
+
+To register under __Boost_Typeof__:
+
+``
+#include <__with_height__typeof_header__>
+``
+[endsect]
+
+[section:model_of Model of]
+__Base_Type_Generator__
+[endsect]
+
+[section:tpl_param Template Parameters]
+[table
+    [[Parameter][Description][Default]]
+    [
+        [`BaseGenerator`]
+        [
+            The __Base_Type_Generator__ from whose return type
+            __tree_node_with_height_base__ will inherit.
+        ]
+        []
+    ]
+    [
+        [`Height`]
+        [The height type.]
+        [`std::size_t`]
+    ]
+]
+[endsect]
+
+[section:expressions Expression Semantics]
+Let `Derived` be the type that will inherit from
+__tree_node_with_height_base__.
+
+Let `Key` be the key type.
+
+Let `Data` be the user data type.
+
+Let `BaseGenerator` be a valid first template argument for
+`with_height_base_gen`.
+
+Let `Height` be the height type.
+
+``
+    typedef _mpl_apply_wrap3_<
+        with_height_base_gen<BaseGenerator,Height>
+      , Derived
+      , Key
+      , Data
+    >::type r;
+``
+
+[*Return type:]
+[^_tree_node_with_height_base_<Derived,BaseGenerator,Key,Data,Height>]
+
+``
+    typedef _mpl_apply_wrap2_<
+        with_height_base_gen<BaseGenerator,Height>
+      , Derived
+      , Data
+    >::type r;
+``
+
+[*Return type:]
+[^_tree_node_with_height_base_<Derived,BaseGenerator,Data,void,Height>]
+
+[endsect]
+
+[section Complexity]
+Compile time.
+[endsect]
+
+[endsect] [/ with_height_base_gen]
+
Added: sandbox/tree_node/libs/tree_node/doc/ref_with_height_gen.qbk
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ sandbox/tree_node/libs/tree_node/doc/ref_with_height_gen.qbk	2013-07-07 14:52:52 EDT (Sun, 07 Jul 2013)	(r84977)
@@ -0,0 +1,94 @@
+[/=============================================================================
+    Copyright (C) 2011-2013 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:with_height_gen `with_height_gen<BaseGenerator>`]
+
+[section Synopsis]
+[reference__with_height_gen]
+[endsect]
+
+[section Description]
+Selector that can be passed on to generic functions and/or data structures that
+use __Tree_Node__ models with constant-time access to node heights.  The
+`BaseGenerator` template argument allows the same models to incorporate other
+data that the same or other functions and/or data structures might need.
+[endsect]
+
+[section:definition Where defined]
+``
+#include <__with_height__header__>
+``
+
+To register under __Boost_Typeof__:
+
+``
+#include <__with_height__typeof_header__>
+``
+[endsect]
+
+[section:model_of Model of]
+__Node_Type_Generator__
+[endsect]
+
+[section:tpl_param Template Parameters]
+[table
+    [[Parameter][Description][Default]]
+    [
+        [`BaseGenerator`]
+        [
+            The __Base_Type_Generator__ from whose return type
+            __tree_node_with_height__ will ultimately inherit.
+        ]
+        []
+    ]
+    [
+        [`Height`]
+        [The height type.]
+        [`std::size_t`]
+    ]
+]
+[endsect]
+
+[section:expressions Expression Semantics]
+Let `Key` be the key type.
+
+Let `Data` be the user data type.
+
+Let `BaseGenerator` be a valid first template argument for `with_height_gen`.
+
+Let `Height` be the height type.
+
+``
+    typedef _mpl_apply_wrap2_<
+        with_height_gen<BaseGenerator,Height>
+      , Key
+      , Data
+    >::type r;
+``
+
+[*Return type:]
+[^_tree_node_with_height_<BaseGenerator,Key,Data,Height>]
+
+``
+    typedef _mpl_apply_wrap1_<
+        with_height_gen<BaseGenerator,Height>
+      , Data
+    >::type r;
+``
+
+[*Return type:]
+[^_tree_node_with_height_<BaseGenerator,Data,void,Height>]
+
+[endsect]
+
+[section Complexity]
+Compile time.
+[endsect]
+
+[endsect] [/ with_height_gen]
+
Added: sandbox/tree_node/libs/tree_node/doc/ref_with_position.qbk
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ sandbox/tree_node/libs/tree_node/doc/ref_with_position.qbk	2013-07-07 14:52:52 EDT (Sun, 07 Jul 2013)	(r84977)
@@ -0,0 +1,145 @@
+[/=============================================================================
+    Copyright (C) 2011-2013 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:with_position `with_position<BaseGenerator,T1,T2>`]
+
+[section Description]
+This __Tree_Node__ adaptor provides access to its position in its parent's
+range of children as well as the other operations it inherits from the return
+type of `BaseGenerator`.
+[endsect]
+
+[section:definition Where defined]
+``
+#include <__with_position__header__>
+``
+
+Forward-declared:
+
+``
+#include <__with_position__forward_header__>
+``
+
+To register under __Boost_Typeof__:
+
+``
+#include <__with_position__typeof_header__>
+``
+[endsect]
+
+[section:tpl_param Template Parameters]
+[table
+    [[Parameter][Description][Default]]
+    [
+        [`BaseGenerator`]
+        [
+            The __Base_Type_Generator__ from whose return type `with_position`
+            will ultimately inherit.
+        ]
+        []
+    ]
+    [
+        [`T1`]
+        [The key type if `T2` is specified; the user data type otherwise.]
+        []
+    ]
+    [
+        [`T2`]
+        [The user data type if specified; ignored otherwise.]
+        [`void`]
+    ]
+]
+[endsect]
+
+[section:model_of Model of]
+[itemized_list
+    [
+        __Associative_Tree_Node__ if `T2` is specified;
+        __Non_Associative_Tree_Node__ otherwise
+    ]
+    [any other concept that the return type of `BaseGenerator` models]
+]
+[endsect]
+
+[section:public_bases Public Base Classes]
+[reference__with_position__bases]
+[endsect]
+
+[section:members Public Members]
+In addition to those inherited from the return type of `BaseGenerator`, the
+following members are defined:
+
+[table
+    [[Name][Definition][Where defined]]
+    [
+        [Emplacement constructor]
+        [[reference__with_position__emplacement_ctor]]
+        [__Tree_Node__]
+    ]
+    [
+        [Emplacement constructor with allocator]
+        [[reference__with_position__emplacement_ctor_w_allocator]]
+        [__Tree_Node__]
+    ]
+    [
+        [Copy constructor]
+        [``
+            with_position(with_position const& copy);
+        ``]
+        [__Copyable_Tree_Node__]
+    ]
+    [
+        [Copy constructor with allocator]
+        [``
+            with_position(
+                with_position const& copy
+              , typename traits::allocator_reference allocator
+            );
+        ``]
+        [__Copyable_Tree_Node__]
+    ]
+    [
+        [Move constructor]
+        [``
+            with_position(with_position&& source);
+        ``]
+        [__Movable_Tree_Node__]
+    ]
+    [
+        [Move constructor with allocator]
+        [``
+            with_position(
+                with_position&& source
+              , typename traits::allocator_reference allocator
+            );
+        ``]
+        [__Movable_Tree_Node__]
+    ]
+    [
+        [Copy assignment operator]
+        [``
+            with_position& operator=(with_position const& copy);
+        ``]
+        [__Assignable__]
+    ]
+    [
+        [Move assignment operator]
+        [``
+            with_position& operator=(with_position&& source);
+        ``]
+        [__Movable__]
+    ]
+]
+[endsect]
+
+[section:non_members Non-members]
+Same as those defined in __tree_node_with_position_base__.
+[endsect]
+
+[endsect] [/ with_position]
+
Added: sandbox/tree_node/libs/tree_node/doc/ref_with_position_base.qbk
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ sandbox/tree_node/libs/tree_node/doc/ref_with_position_base.qbk	2013-07-07 14:52:52 EDT (Sun, 07 Jul 2013)	(r84977)
@@ -0,0 +1,162 @@
+[/=============================================================================
+    Copyright (C) 2011-2013 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:with_position_base `with_position_base<Derived,BaseGenerator,T1,T2>`]
+
+[section Description]
+The __tree_node_with_position__ class template inherits its functionality from
+this class template.  They differ only with regard to template parameters: the
+__tree_node_with_position__ class template is meant to be used directly as a
+data structure, while `with_position_base` is more suitable as a base class
+template from which other __Tree_Node__ adaptor class templates can derive via
+the __tree_node_with_position_base_gen__ __Base_Type_Generator__.
+[endsect]
+
+[section:definition Where defined]
+``
+#include <__with_position__header__>
+``
+
+Forward-declared:
+
+``
+#include <__with_position__forward_header__>
+``
+
+To register under __Boost_Typeof__:
+
+``
+#include <__with_position__typeof_header__>
+``
+[endsect]
+
+[section:tpl_param Template Parameters]
+[table
+    [[Parameter][Description]]
+    [
+        [`Derived`]
+        [The most descendant type that will inherit from this one.]
+    ]
+    [
+        [`BaseGenerator`]
+        [
+            The __Base_Type_Generator__ from whose return type
+            `with_position_base` will inherit.
+        ]
+    ]
+    [
+        [`T1`]
+        [The key type if `T2` is not `void`; the user data type otherwise.]
+    ]
+    [
+        [`T2`]
+        [The user data type if not `void`; ignored otherwise.]
+    ]
+]
+[endsect]
+
+[section:model_of Model of]
+[itemized_list
+    [
+        __Associative_Tree_Node__ if `T2` is not `void`;
+        __Non_Associative_Tree_Node__ otherwise
+    ]
+    [__Base_Tree_Node__]
+    [any other concept that the return type of `BaseGenerator` models]
+]
+[endsect]
+
+[section:public_bases Public Base Classes]
+[reference__with_position_base__bases]
+[endsect]
+
+[section:members Members]
+In addition to those inherited from the return type of `BaseGenerator`, the
+following members are defined:
+
+[table
+    [[Name][Definition][Scope][Description]]
+    [
+        [Emplacement constructor]
+        [[reference__with_position_base__emplacement_ctor]]
+        [`protected`]
+        [Defined by the __Tree_Node__ concept.]
+    ]
+    [
+        [Emplacement constructor with allocator]
+        [[reference__with_position_base__emplacement_ctor_w_allocator]]
+        [`protected`]
+        [Defined by the __Tree_Node__ concept.]
+    ]
+    [
+        [Derived copy constructor]
+        [[reference__with_position_base__derived_copy_ctor]]
+        [`protected`]
+        [Defined by the __Base_Tree_Node__ concept.]
+    ]
+    [
+        [Derived copy constructor with allocator]
+        [[reference__with_position_base__derived_copy_ctor_w_allocator]]
+        [`protected`]
+        [Defined by the __Base_Tree_Node__ concept.]
+    ]
+    [
+        [Derived move constructor]
+        [``
+            with_position_base(Derived&& source);
+        ``]
+        [`protected`]
+        [Defined by the __Base_Tree_Node__ concept.]
+    ]
+    [
+        [Derived move constructor with allocator]
+        [``
+            with_position_base(
+                Derived&& source
+              , typename traits::allocator_reference allocator
+            );
+        ``]
+        [`protected`]
+        [Defined by the __Base_Tree_Node__ concept.]
+    ]
+    [
+        [Position member read-only access]
+        [[reference__with_position_base__key_value_operator__const]]
+        [`public`]
+        [Returns the immutable iterator that points to this tree node.]
+    ]
+    [
+        [Position member access]
+        [[reference__with_position_base__key_value_operator]]
+        [`public`]
+        [Returns the iterator that points to this tree node.]
+    ]
+]
+[endsect]
+
+[section:non_members Non-members]
+In addition to those inherited from the return type of `BaseGenerator`, the
+following non-members are defined.
+
+[table
+    [[Name][Definition][Where defined]]
+    [
+        [Position read-only access]
+        [[reference__with_position_base__at_key__const]]
+        [__Tree_Node__]
+    ]
+    [
+        [Position access]
+        [[reference__with_position_base__at_key]]
+        [__Tree_Node__]
+    ]
+]
+[endsect]
+
+[endsect] [/ with_position_base]
+
Added: sandbox/tree_node/libs/tree_node/doc/ref_with_position_base_gen.qbk
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ sandbox/tree_node/libs/tree_node/doc/ref_with_position_base_gen.qbk	2013-07-07 14:52:52 EDT (Sun, 07 Jul 2013)	(r84977)
@@ -0,0 +1,92 @@
+[/=============================================================================
+    Copyright (C) 2011-2013 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:with_position_base_gen `with_position_base_gen<BaseGenerator>`]
+
+[section Synopsis]
+[reference__with_position_base_gen]
+[endsect]
+
+[section Description]
+Selector that can be passed on to generic functions and/or data structures that
+use __Base_Tree_Node__ models with constant-time access to node positions.  The
+`BaseGenerator` template argument allows the same models to incorporate other
+data that the same or other functions and/or data structures might need.
+[endsect]
+
+[section:definition Where defined]
+``
+#include <__with_position__header__>
+``
+
+To register under __Boost_Typeof__:
+
+``
+#include <__with_position__typeof_header__>
+``
+[endsect]
+
+[section:model_of Model of]
+__Base_Type_Generator__
+[endsect]
+
+[section:tpl_param Template Parameters]
+[table
+    [[Parameter][Description][Default]]
+    [
+        [`BaseGenerator`]
+        [
+            The __Base_Type_Generator__ from whose return type
+            __tree_node_with_position_base__ will inherit.
+        ]
+        []
+    ]
+]
+[endsect]
+
+[section:expressions Expression Semantics]
+Let `Derived` be the type that will inherit from
+__tree_node_with_position_base__.
+
+Let `Key` be the key type.
+
+Let `Data` be the user data type.
+
+Let `BaseGenerator` be a valid `with_position_base_gen` template argument.
+
+``
+    typedef _mpl_apply_wrap3_<
+        with_position_base_gen<BaseGenerator>
+      , Derived
+      , Key
+      , Data
+    >::type r;
+``
+
+[*Return type:]
+[^_tree_node_with_position_base_<Derived,BaseGenerator,Key,Data>]
+
+``
+    typedef _mpl_apply_wrap2_<
+        with_position_base_gen<BaseGenerator>
+      , Derived
+      , Data
+    >::type r;
+``
+
+[*Return type:]
+[^_tree_node_with_position_base_<Derived,BaseGenerator,Data,void>]
+
+[endsect]
+
+[section Complexity]
+Compile time.
+[endsect]
+
+[endsect] [/ with_position_base_gen]
+
Added: sandbox/tree_node/libs/tree_node/doc/ref_with_position_gen.qbk
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ sandbox/tree_node/libs/tree_node/doc/ref_with_position_gen.qbk	2013-07-07 14:52:52 EDT (Sun, 07 Jul 2013)	(r84977)
@@ -0,0 +1,87 @@
+[/=============================================================================
+    Copyright (C) 2011-2013 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:with_position_gen `with_position_gen<BaseGenerator>`]
+
+[section Synopsis]
+[reference__with_position_gen]
+[endsect]
+
+[section Description]
+Selector that can be passed on to generic functions and/or data structures that
+use __Tree_Node__ models with constant-time access to node positions.  The
+`BaseGenerator` template argument allows the same models to incorporate other
+data that the same or other functions and/or data structures might need.
+[endsect]
+
+[section:definition Where defined]
+``
+#include <__with_position__header__>
+``
+
+To register under __Boost_Typeof__:
+
+``
+#include <__with_position__typeof_header__>
+``
+[endsect]
+
+[section:model_of Model of]
+__Node_Type_Generator__
+[endsect]
+
+[section:tpl_param Template Parameters]
+[table
+    [[Parameter][Description][Default]]
+    [
+        [`BaseGenerator`]
+        [
+            The __Base_Type_Generator__ from whose return type
+            __tree_node_with_position__ will ultimately inherit.
+        ]
+        []
+    ]
+]
+[endsect]
+
+[section:expressions Expression Semantics]
+Let `Key` be the key type.
+
+Let `Data` be the user data type.
+
+Let `BaseGenerator` be a valid `with_position_gen` template argument.
+
+``
+    typedef _mpl_apply_wrap2_<
+        with_position_gen<BaseGenerator>
+      , Key
+      , Data
+    >::type r;
+``
+
+[*Return type:]
+[^_tree_node_with_position_<BaseGenerator,Key,Data>]
+
+``
+    typedef _mpl_apply_wrap1_<
+        with_position_gen<BaseGenerator>
+      , Data
+    >::type r;
+``
+
+[*Return type:]
+[^_tree_node_with_position_<BaseGenerator,Data,void>]
+
+[endsect]
+
+[section Complexity]
+Compile time.
+[endsect]
+
+[endsect] [/ with_position_gen]
+
Added: sandbox/tree_node/libs/tree_node/doc/ref_with_rb_flag.qbk
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ sandbox/tree_node/libs/tree_node/doc/ref_with_rb_flag.qbk	2013-07-07 14:52:52 EDT (Sun, 07 Jul 2013)	(r84977)
@@ -0,0 +1,145 @@
+[/=============================================================================
+    Copyright (C) 2011-2013 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:with_rb_flag `with_red_black_flag<BaseGenerator,T1,T2>`]
+
+[section Description]
+In addition to the other operations it inherits from the return type of
+`BaseGenerator`, this __Tree_Node__ adaptor provides access to a flag that
+indicates whether the node is red or black.
+[endsect]
+
+[section:definition Where defined]
+``
+#include <__with_red_black_flag__header__>
+``
+
+Forward-declared:
+
+``
+#include <__with_red_black_flag__forward_header__>
+``
+
+To register under __Boost_Typeof__:
+
+``
+#include <__with_red_black_flag__typeof_header__>
+``
+[endsect]
+
+[section:tpl_param Template Parameters]
+[table
+    [[Parameter][Description][Default]]
+    [
+        [`BaseGenerator`]
+        [
+            The __Base_Type_Generator__ model from whose return type
+            `with_red_black_flag` will ultimately inherit.
+        ]
+        []
+    ]
+    [
+        [`T1`]
+        [The key type if `T2` is specified; the user data type otherwise.]
+        []
+    ]
+    [
+        [`T2`]
+        [The user data type if specified; ignored otherwise.]
+        [`void`]
+    ]
+]
+[endsect]
+
+[section:model_of Model of]
+[itemized_list
+    [
+        __Associative_Tree_Node__ if `T2` is specified;
+        __Non_Associative_Tree_Node__ otherwise
+    ]
+    [any other concept that the return type of `BaseGenerator` models]
+]
+[endsect]
+
+[section:public_bases Public Base Classes]
+[reference__with_red_black_flag__bases]
+[endsect]
+
+[section:members Public Members]
+In addition to those inherited from the return type of `BaseGenerator`, the
+following members are defined:
+
+[table
+    [[Name][Definition][Where defined]]
+    [
+        [Emplacement constructor]
+        [[reference__with_red_black_flag__emplacement_ctor]]
+        [__Tree_Node__]
+    ]
+    [
+        [Emplacement constructor with allocator]
+        [[reference__with_red_black_flag__emplacement_ctor_w_allocator]]
+        [__Tree_Node__]
+    ]
+    [
+        [Copy constructor]
+        [``
+            with_red_black_flag(with_red_black_flag const& copy);
+        ``]
+        [__Tree_Node__]
+    ]
+    [
+        [Copy constructor with allocator]
+        [``
+            with_red_black_flag(
+                with_red_black_flag const& copy
+              , typename traits::allocator_reference allocator
+            );
+        ``]
+        [__Tree_Node__]
+    ]
+    [
+        [Move constructor]
+        [``
+            with_red_black_flag(with_red_black_flag&& source);
+        ``]
+        [__Movable_Tree_Node__]
+    ]
+    [
+        [Move constructor with allocator]
+        [``
+            with_red_black_flag(
+                with_red_black_flag&& source
+              , typename traits::allocator_reference allocator
+            );
+        ``]
+        [__Movable_Tree_Node__]
+    ]
+    [
+        [Copy assignment operator]
+        [``
+            with_red_black_flag& operator=(with_red_black_flag const& copy);
+        ``]
+        [__Assignable__]
+    ]
+    [
+        [Move assignment operator]
+        [``
+            with_red_black_flag& operator=(with_red_black_flag&& source);
+        ``]
+        [__Movable__]
+    ]
+]
+[endsect]
+
+[section:non_members Non-members]
+Same as those defined in __tree_node_with_red_black_flag_base__.
+[endsect]
+
+[endsect] [/ with_red_black_flag]
+
Added: sandbox/tree_node/libs/tree_node/doc/ref_with_rb_flag_base.qbk
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ sandbox/tree_node/libs/tree_node/doc/ref_with_rb_flag_base.qbk	2013-07-07 14:52:52 EDT (Sun, 07 Jul 2013)	(r84977)
@@ -0,0 +1,199 @@
+[/=============================================================================
+    Copyright (C) 2011-2013 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:with_rb_flag_base
+    `with_red_black_flag_base<Derived,BaseGenerator,T1,T2>`
+]
+
+[section Description]
+The __tree_node_with_red_black_flag__ class template inherits its functionality
+from this class template.  They differ only with regard to template parameters:
+the __tree_node_with_red_black_flag__ class template is meant to be used
+directly as a data structure, while `with_red_black_flag_base` is more suitable
+as a base class template from which other __Tree_Node__ adaptor class templates
+can derive via the __tree_node_with_red_black_flag_base_gen__
+__Base_Type_Generator__.
+[endsect]
+
+[section:definition Where defined]
+``
+#include <__with_red_black_flag__header__>
+``
+
+Forward-declared:
+
+``
+#include <__with_red_black_flag__forward_header__>
+``
+
+To register under __Boost_Typeof__:
+
+``
+#include <__with_red_black_flag__typeof_header__>
+``
+[endsect]
+
+[section:tpl_param Template Parameters]
+[table
+    [[Parameter][Description]]
+    [
+        [`Derived`]
+        [The most descendant type that will inherit from this one.]
+    ]
+    [
+        [`BaseGenerator`]
+        [
+            The __Base_Type_Generator__ from whose return type
+            `with_red_black_flag_base` will inherit.
+        ]
+    ]
+    [
+        [`T1`]
+        [The key type if `T2` is not `void`; the user data type otherwise.]
+    ]
+    [
+        [`T2`]
+        [The user data type if not `void`; ignored otherwise.]
+    ]
+]
+[endsect]
+
+[section:model_of Model of]
+[itemized_list
+    [
+        __Associative_Tree_Node__ if `T2` is not `void`;
+        __Non_Associative_Tree_Node__ otherwise
+    ]
+    [__Base_Tree_Node__]
+    [any other concept that the return type of `BaseGenerator` models]
+]
+[endsect]
+
+[section:public_bases Public Base Classes]
+[reference__with_red_black_flag_base__bases]
+[endsect]
+
+[section:members Members]
+In addition to those inherited from the return type of `BaseGenerator`, the
+following members are defined:
+
+[table
+    [[Name][Definition][Scope][Description]]
+    [
+        [Emplacement constructor]
+        [[reference__with_red_black_flag_base__emplacement_ctor]]
+        [`protected`]
+        [Defined by the __Tree_Node__ concept.]
+    ]
+    [
+        [Emplacement constructor with allocator]
+        [[reference__with_red_black_flag_base__emplacement_ctor_w_allocator]]
+        [`protected`]
+        [Defined by the __Tree_Node__ concept.]
+    ]
+    [
+        [Derived copy constructor]
+        [[reference__with_red_black_flag_base__derived_copy_ctor]]
+        [`protected`]
+        [Defined by the __Base_Tree_Node__ concept.]
+    ]
+    [
+        [Derived copy constructor with allocator]
+        [[reference__with_red_black_flag_base__derived_copy_ctor_w_allocator]]
+        [`protected`]
+        [Defined by the __Base_Tree_Node__ concept.]
+    ]
+    [
+        [Derived move constructor]
+        [``
+            with_red_black_flag_base(Derived&& source);
+        ``]
+        [`protected`]
+        [Defined by the __Base_Tree_Node__ concept.]
+    ]
+    [
+        [Derived move constructor with allocator]
+        [``
+            with_red_black_flag_base(
+                Derived&& source
+              , typename traits::allocator_reference allocator
+            );
+        ``]
+        [`protected`]
+        [Defined by the __Base_Tree_Node__ concept.]
+    ]
+    [
+        [Red flag query]
+        [[reference__with_red_black_flag_base__key_value_operator__red]]
+        [`public`]
+        [
+            Returns `true` if the flag is set to red, `false` if it is set to
+            black.
+        ]
+    ]
+    [
+        [Black flag query]
+        [[reference__with_red_black_flag_base__key_value_operator__black]]
+        [`public`]
+        [
+            Returns `true` if the flag is set to black, `false` if it is set to
+            red.
+        ]
+    ]
+    [
+        [Red flag setting]
+        [[reference__with_red_black_flag_base__set_red_flag]]
+        [`public`]
+        [
+            Sets the flag to red if the argument evaluates to `true`; sets the
+            flag to black if the argument evaluates to `false`.
+        ]
+    ]
+    [
+        [Black flag setting]
+        [[reference__with_red_black_flag_base__set_black_flag]]
+        [`public`]
+        [
+            Sets the flag to black if the argument evaluates to `true`; sets
+            the flag to red if the argument evaluates to `false`.
+        ]
+    ]
+]
+[endsect]
+
+[section:non_members Non-members]
+In addition to those inherited from the return type of `BaseGenerator`, the
+following non-members are defined.
+
+[table
+    [[Name][Definition][Where defined]]
+    [
+        [Red flag key-value read-only access]
+        [[reference__with_red_black_flag_base__at_red_flag_key]]
+        [__Tree_Node__]
+    ]
+    [
+        [Black flag key-value read-only access]
+        [[reference__with_red_black_flag_base__at_black_flag_key]]
+        [__Tree_Node__]
+    ]
+    [
+        [Red flag key-value modification]
+        [[reference__with_red_black_flag_base__put__red]]
+        [__Tree_Node__]
+    ]
+    [
+        [Black flag key-value modification]
+        [[reference__with_red_black_flag_base__put__black]]
+        [__Tree_Node__]
+    ]
+]
+[endsect]
+
+[endsect] [/ with_red_black_flag_base]
+
Added: sandbox/tree_node/libs/tree_node/doc/ref_with_rb_flag_base_gen.qbk
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ sandbox/tree_node/libs/tree_node/doc/ref_with_rb_flag_base_gen.qbk	2013-07-07 14:52:52 EDT (Sun, 07 Jul 2013)	(r84977)
@@ -0,0 +1,94 @@
+[/=============================================================================
+    Copyright (C) 2011-2013 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:with_rb_flag_base_gen `with_red_black_flag_base_gen<BaseGenerator>`]
+
+[section Synopsis]
+[reference__with_red_black_flag_base_gen]
+[endsect]
+
+[section Description]
+Selector that can be passed on to generic functions and/or data structures that
+use __Base_Tree_Node__ models with constant-time access to red/black node
+flags.  The `BaseGenerator` template argument allows the same models to
+incorporate other data that the same or other functions and/or data structures
+might need.
+[endsect]
+
+[section:definition Where defined]
+``
+#include <__with_red_black_flag__header__>
+``
+
+To register under __Boost_Typeof__:
+
+``
+#include <__with_red_black_flag__typeof_header__>
+``
+[endsect]
+
+[section:model_of Model of]
+__Base_Type_Generator__
+[endsect]
+
+[section:tpl_param Template Parameters]
+[table
+    [[Parameter][Description][Default]]
+    [
+        [`BaseGenerator`]
+        [
+            The __Base_Type_Generator__ from whose return type
+            __tree_node_with_red_black_flag_base__ will inherit.
+        ]
+        []
+    ]
+]
+[endsect]
+
+[section:expressions Expression Semantics]
+Let `Derived` be the type that will inherit from
+__tree_node_with_red_black_flag_base__.
+
+Let `Key` be the key type.
+
+Let `Data` be the user data type.
+
+Let `BaseGenerator` be a valid `with_red_black_flag_base_gen` template
+argument.
+
+``
+    typedef _mpl_apply_wrap3_<
+        with_red_black_flag_base_gen<BaseGenerator>
+      , Derived
+      , Key
+      , Data
+    >::type r;
+``
+
+[*Return type:]
+[^_tree_node_with_red_black_flag_base_<Derived,BaseGenerator,Key,Data>]
+
+``
+    typedef _mpl_apply_wrap2_<
+        with_red_black_flag_base_gen<BaseGenerator>
+      , Derived
+      , Data
+    >::type r;
+``
+
+[*Return type:]
+[^_tree_node_with_red_black_flag_base_<Derived,BaseGenerator,Data,void>]
+
+[endsect]
+
+[section Complexity]
+Compile time.
+[endsect]
+
+[endsect] [/ with_red_black_flag_base_gen]
+
Added: sandbox/tree_node/libs/tree_node/doc/ref_with_rb_flag_gen.qbk
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ sandbox/tree_node/libs/tree_node/doc/ref_with_rb_flag_gen.qbk	2013-07-07 14:52:52 EDT (Sun, 07 Jul 2013)	(r84977)
@@ -0,0 +1,88 @@
+[/=============================================================================
+    Copyright (C) 2011-2013 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:with_rb_flag_gen `with_red_black_flag_gen<BaseGenerator>`]
+
+[section Synopsis]
+[reference__with_red_black_flag_gen]
+[endsect]
+
+[section Description]
+Selector that can be passed on to generic functions and/or data structures
+that use __Tree_Node__ models with constant-time access to red/black node
+flags.  The `BaseGenerator` template argument allows the same models to
+incorporate other data that the same or other functions and/or data structures
+might need.
+[endsect]
+
+[section:definition Where defined]
+``
+#include <__with_red_black_flag__header__>
+``
+
+To register under __Boost_Typeof__:
+
+``
+#include <__with_red_black_flag__typeof_header__>
+``
+[endsect]
+
+[section:model_of Model of]
+__Node_Type_Generator__
+[endsect]
+
+[section:tpl_param Template Parameters]
+[table
+    [[Parameter][Description][Default]]
+    [
+        [`BaseGenerator`]
+        [
+            The __Base_Type_Generator__ from whose return type
+            __tree_node_with_red_black_flag__ will ultimately inherit.
+        ]
+        []
+    ]
+]
+[endsect]
+
+[section:expressions Expression Semantics]
+Let `Key` be the key type.
+
+Let `Data` be the user data type.
+
+Let `BaseGenerator` be a valid `with_red_black_flag_gen` template argument.
+
+``
+    typedef _mpl_apply_wrap2_<
+        with_red_black_flag_gen<BaseGenerator>
+      , Key
+      , Data
+    >::type r;
+``
+
+[*Return type:]
+[^_tree_node_with_red_black_flag_<BaseGenerator,Key,Data>]
+
+``
+    typedef _mpl_apply_wrap1_<
+        with_red_black_flag_gen<BaseGenerator>
+      , Data
+    >::type r;
+``
+
+[*Return type:]
+[^_tree_node_with_red_black_flag_<BaseGenerator,Data,void>]
+
+[endsect]
+
+[section Complexity]
+Compile time.
+[endsect]
+
+[endsect] [/ with_red_black_flag_gen]
+
Added: sandbox/tree_node/libs/tree_node/doc/reference.qbk
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ sandbox/tree_node/libs/tree_node/doc/reference.qbk	2013-07-07 14:52:52 EDT (Sun, 07 Jul 2013)	(r84977)
@@ -0,0 +1,266 @@
+[/=============================================================================
+    Copyright (C) 2011-2013 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_binode_container.qbk]
+[include ref_binode_assoc_container.qbk]
+[include ref_binode_set.qbk]
+[include ref_binode_multiset.qbk]
+[include ref_binode_map.qbk]
+[include ref_binode_multimap.qbk]
+[include ref_null_balancer.qbk]
+[include ref_red_black_balancer.qbk]
+[include ref_avl_balancer.qbk]
+[include ref_binary_node.qbk]
+[include ref_binary_node_gen.qbk]
+[include ref_binary_node_base.qbk]
+[include ref_binary_node_base_gen.qbk]
+[include ref_nary_node.qbk]
+[include ref_nary_node_gen.qbk]
+[include ref_nary_node_base.qbk]
+[include ref_nary_node_base_gen.qbk]
+[include ref_associative_node.qbk]
+[include ref_associative_node_gen.qbk]
+[include ref_associative_node_base.qbk]
+[include ref_assoc_node_base_gen.qbk]
+[include ref_with_accumulation.qbk]
+[include ref_with_accumulation_gen.qbk]
+[include ref_with_accumulation_base.qbk]
+[include ref_with_accum_base_gen.qbk]
+[include ref_with_count.qbk]
+[include ref_with_count_gen.qbk]
+[include ref_with_count_base.qbk]
+[include ref_with_count_base_gen.qbk]
+[include ref_with_height.qbk]
+[include ref_with_height_gen.qbk]
+[include ref_with_height_base.qbk]
+[include ref_with_height_base_gen.qbk]
+[include ref_with_position.qbk]
+[include ref_with_position_gen.qbk]
+[include ref_with_position_base.qbk]
+[include ref_with_position_base_gen.qbk]
+[include ref_with_rb_flag.qbk]
+[include ref_with_rb_flag_gen.qbk]
+[include ref_with_rb_flag_base.qbk]
+[include ref_with_rb_flag_base_gen.qbk]
+[include ref_tree_node_base.qbk]
+[include ref_breadth_first_iterator.qbk]
+[include ref_breadth_first_desc_iter.qbk]
+[include ref_pre_order_iterator.qbk]
+[include ref_pre_order_desc_iter.qbk]
+[include ref_post_order_iterator.qbk]
+[include ref_post_order_desc_iter.qbk]
+[include ref_in_order_iterator.qbk]
+[include ref_depth_first_iterator.qbk]
+[include ref_depth_first_desc_iter.qbk]
+[include ref_compare_selector.qbk]
+[include ref_traversal_state.qbk]
+[include ref_data_key.qbk]
+[include ref_accumulation_key.qbk]
+[include ref_count_key.qbk]
+[include ref_height_key.qbk]
+[include ref_position_key.qbk]
+[include ref_red_black_flag_key.qbk]
+[include ref_advance_binary.qbk]
+[include ref_binary_index_of.qbk]
+[include ref_binary_descendant.qbk]
+[include ref_bin_descendant_at_index.qbk]
+[include ref_binary_lower_bound.qbk]
+[include ref_binary_upper_bound.qbk]
+[include ref_cartesian_sort.qbk]
+[include ref_cartesian_sort_range.qbk]
+[include ref_dereference_iterator.qbk]
+[include ref_get_properties.qbk]
+[include ref_has_key.qbk]
+[include ref_get_keys.qbk]
+[include ref_at_key.qbk]
+[include ref_value_at_key.qbk]
+[include ref_copyable_and_movable.qbk]
+[include ref_container_derived_body.qbk]
+[include ref_assoc_cont_derived_body.qbk]
+[include ref_emplace_ctor_fwd_decl.qbk]
+[include ref_emplace_ctor_inline_hdr.qbk]
+[include ref_emplace_ctor_inline_def.qbk]
+[include ref_empl_ctor_w_allc_f_decl.qbk]
+[include ref_empl_ctor_w_allc_il_hdr.qbk]
+[include ref_empl_ctor_w_allc_il_def.qbk]
+[include ref_can_use_fusion.qbk]
+[include ref_can_use_fusion_w_typeof.qbk]
+
+[heading Container Types]
+
+[itemized_list
+    [__binode_container__]
+    [__binode_associative_container__]
+    [__binode_set__]
+    [__binode_multiset__]
+    [__binode_map__]
+    [__binode_multimap__]
+]
+
+[heading Balancer Types]
+
+[itemized_list
+    [__null_balancer__]
+    [__red_black_balancer__]
+    [__avl_balancer__]
+]
+
+[heading Node Types]
+
+[itemized_list
+    [__binary_node__]
+    [__nary_node__]
+    [__associative_node__]
+]
+
+[heading Adaptor Types]
+
+[itemized_list
+    [__tree_node_with_accumulation__]
+    [__tree_node_with_count__]
+    [__tree_node_with_height__]
+    [__tree_node_with_position__]
+    [__tree_node_with_red_black_flag__]
+]
+
+[heading Base Types]
+
+[itemized_list
+    [__binary_node_base__]
+    [__nary_node_base__]
+    [__associative_node_base__]
+    [__tree_node_with_accumulation_base__]
+    [__tree_node_with_count_base__]
+    [__tree_node_with_height_base__]
+    [__tree_node_with_position_base__]
+    [__tree_node_with_red_black_flag_base__]
+    [__tree_node_base__]
+]
+
+[heading Type Generators]
+
+[itemized_list
+    [__binary_node_gen__]
+    [__binary_node_base_gen__]
+    [__nary_node_gen__]
+    [__nary_node_base_gen__]
+    [__associative_node_gen__]
+    [__associative_node_base_gen__]
+    [__tree_node_with_accumulation_gen__]
+    [__tree_node_with_accumulation_base_gen__]
+    [__tree_node_with_count_gen__]
+    [__tree_node_with_count_base_gen__]
+    [__tree_node_with_height_gen__]
+    [__tree_node_with_height_base_gen__]
+    [__tree_node_with_position_gen__]
+    [__tree_node_with_position_base_gen__]
+    [__tree_node_with_red_black_flag_gen__]
+    [__tree_node_with_red_black_flag_base_gen__]
+]
+
+[heading Iterator Types]
+
+[itemized_list
+    [__breadth_first_iterator__]
+    [__breadth_first_descendant_iterator__]
+    [__pre_order_iterator__]
+    [__pre_order_descendant_iterator__]
+    [__post_order_iterator__]
+    [__post_order_descendant_iterator__]
+    [__in_order_iterator__]
+    [__depth_first_iterator__]
+    [__depth_first_descendant_iterator__]
+]
+
+[heading Selector Types]
+
+[itemized_list
+    [__tree_node_compare_selector__]
+]
+
+[heading Enum Types]
+
+[itemized_list
+    [__traversal_state__]
+]
+
+[heading Key Types]
+
+[itemized_list
+    [__data_key__]
+    [__accumulation_key__]
+    [__count_key__]
+    [__height_key__]
+    [__position_key__]
+    [__red_flag_key__]
+    [__black_flag_key__]
+]
+
+[heading Algorithms]
+
+[itemized_list
+    [__advance_binary__]
+    [__binary_index_of__]
+    [__binary_descendant__]
+    [__binary_descendant_at_index__]
+    [__binary_lower_bound__]
+    [__binary_upper_bound__]
+    [__cartesian_sort__]
+    [__cartesian_sort_range__]
+]
+
+[heading Intrinsic Functions]
+
+[itemized_list
+    [__dereference_iterator__]
+    [__get_properties__]
+    [__has_key__]
+    [__at_key__]
+]
+
+[heading Metafunctions]
+
+[itemized_list
+    [__result_of__dereference_iterator__]
+    [__result_of__get_properties__]
+    [__result_of__has_key__]
+    [__result_of__get_keys__]
+    [__result_of__at_key__]
+    [__result_of__value_at_key__]
+]
+
+[heading Boilerplate Macros]
+
+[itemized_list
+    [__TREE_NODE_COPYABLE_AND_MOVABLE__]
+    [__TREE_NODE_CONTAINER_DERIVED_BODY__]
+    [__TREE_NODE_ASSOCIATIVE_CONTAINER_DERIVED_BODY__]
+]
+
+[heading Workaround Macros]
+
+[itemized_list
+    [__TREE_NODE_EMPLACEMENT_CTOR_FWD_DECL__]
+    [__TREE_NODE_EMPLACEMENT_CTOR_INLINE_HEADER__]
+    [__TREE_NODE_EMPLACEMENT_CTOR_INLINE_DEF__]
+    [__TREE_NODE_EMPLACEMENT_CTOR_W_ALLOC_FWD_DECL__]
+    [__TREE_NODE_EMPLACEMENT_CTOR_W_ALLOC_INLINE_HEADER__]
+    [__TREE_NODE_EMPLACEMENT_CTOR_W_ALLOC_INLINE_DEF__]
+]
+
+[heading Feature Querying Macros]
+
+[itemized_list
+    [__TREE_NODE_CAN_USE_FUSION__]
+    [__TREE_NODE_CAN_USE_FUSION_WITH_TYPEOF__]
+]
+
+[endsect] [/ Reference]
+
Added: sandbox/tree_node/libs/tree_node/doc/tree_node.qbk
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ sandbox/tree_node/libs/tree_node/doc/tree_node.qbk	2013-07-07 14:52:52 EDT (Sun, 07 Jul 2013)	(r84977)
@@ -0,0 +1,503 @@
+[library tree_node
+    [quickbook 1.6]
+    [version 0.5]
+    [authors [Enage, Cromwell D.]]
+    [copyright 2011-2013 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]]
+[def __Cartesian_tree__ [@http://en.wikipedia.org/wiki/Cartesian_tree Cartesian tree]]
+[def __inverted_index__ [@http://en.wikipedia.org/wiki/inverted_index inverted index]]
+[def __radix_tree__ [@http://en.wikipedia.org/wiki/Radix_tree radix tree]]
+[def __trie__ [@http://en.wikipedia.org/wiki/Trie trie]]
+
+[/ 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 __Reverse_Iterator__ [@http://www.sgi.com/tech/stl/ReverseIterator.html [*Reverse Iterator]]]
+[def __Bidirectional_Iterator__ [@http://www.sgi.com/tech/stl/BidirectionalIterator.html [*Bidirectional Iterator]]]
+[def __Random_Access_Iterator__ [@http://www.sgi.com/tech/stl/RandomAccessIterator.html [*Random Access Iterator]]]
+[def __Strict_Weak_Ordering__ [@http://www.sgi.com/tech/stl/StrictWeakOrdering.html [*Strict Weak Ordering]]]
+[def __Container__ [@http://www.sgi.com/tech/stl/Container.html [*Container]]]
+[def __Reversible_Container__ [@http://www.sgi.com/tech/stl/ReversibleContainer.html [*Reversible Container]]]
+[def __Associative_Container__ [@http://www.sgi.com/tech/stl/AssociativeContainer.html [*Associative Container]]]
+[def __Sorted_Associative_Container__ [@http://www.sgi.com/tech/stl/SortedAssociativeContainer.html [*Sorted Associative Container]]]
+[def __Simple_Associative_Container__ [@http://www.sgi.com/tech/stl/SimpleAssociativeContainer.html [*Simple Associative Container]]]
+[def __Pair_Associative_Container__ [@http://www.sgi.com/tech/stl/PairAssociativeContainer.html [*Pair Associative Container]]]
+[def __Unique_Sorted_Associative_Container__ [@http://www.sgi.com/tech/stl/UniqueSortedAssociativeContainer.html [*Unique Sorted Associative Container]]]
+[def __Multiple_Sorted_Associative_Container__ [@http://www.sgi.com/tech/stl/MultipleSortedAssociativeContainer.html [*Multiple Sorted Associative Container]]]
+[def __Sequence__ [@http://www.sgi.com/tech/stl/Sequence.html [*Sequence]]]
+[def __Front_Insertion_Sequence__ [@http://www.sgi.com/tech/stl/FrontInsertionSequence.html [*Front Insertion Sequence]]]
+[def __Back_Insertion_Sequence__ [@http://www.sgi.com/tech/stl/BackInsertionSequence.html [*Back Insertion Sequence]]]
+[def __Unary_Function__ [@http://www.sgi.com/tech/stl/UnaryFunction.html [*Unary Function]]]
+[def __Binary_Predicate__ [@http://www.sgi.com/tech/stl/BinaryPredicate.html [*Binary Predicate]]]
+[def __Adaptable_Binary_Predicate__ [@http://www.sgi.com/tech/stl/AdaptableBinaryPredicate.html [*Adaptable Binary Predicate]]]
+[def __Equality_Comparable__ [@http://www.sgi.com/tech/stl/EqualityComparable.html [*Equality Comparable]]]
+[def __Less_Than_Comparable__ [@http://www.sgi.com/tech/stl/LessThanComparable.html [*Less-Than Comparable]]]
+
+[/ STL reference links.]
+[def _std_less_ [@http://www.sgi.com/tech/stl/less.html std::less]]
+[def __std_equal__ [@http://www.sgi.com/tech/stl/equal.html `std::equal()`]]
+
+[/ Boost library and installation links.]
+[def __Boost_PP__ [@boost:libs/preprocessor/doc/index.html [*Boost.PP]]]
+[def __Boost_Preprocessor__ [@boost:libs/preprocessor/doc/index.html [*Boost.Preprocessor]]]
+[def __Boost_Typeof__ [@boost:doc/html/typeof.html [*Boost.Typeof]]]
+[def __Boost_Range__ [@boost:libs/range/doc/html/index.html [*Boost.Range]]]
+[def __Boost_Tokenizer__ [@boost:libs/tokenizer/index.html [*Boost.Tokenizer]]]
+[def __Boost_Pointer_Container__ [@boost:libs/ptr_container/doc/index.html [*Boost.PointerContainer]]]
+[def __Boost_Heap__ [@boost:doc/html/heap.html [*Boost.Heap]]]
+[def __Boost_Fusion__ [@boost:libs/fusion/doc/html/index.html [*Boost.Fusion]]]
+[def __Boost_Parameter__ [@boost:libs/parameter/doc/html/index.html [*Boost.Parameter]]]
+[def __Boost_Accumulators__ [@boost:doc/html/accumulators.html [*Boost.Accumulators]]]
+[def __SVN_Trac__ [@http://svn.boost.org/ SVN Trac]]
+[def __Boost_ContainerGen__ [@http://svn.boost.org/svn/boost/sandbox/container_gen/libs/container_gen/doc/html/index.html [*Boost.ContainerGen]]]
+
+[/ Boost concept links.]
+[def __Copy_Constructible__ [@boost:libs/utility/CopyConstructible.html [*Copy Constructible]]]
+[def __Assignable__ [@boost:libs/utility/Assignable.html [*Assignable]]]
+[def __Movable__ [@boost:doc/html/move.html [*Movable]]]
+[def __Boolean_Integral_Constant__ [@boost:libs/mpl/doc/refmanual/integral-constant.html [*Boolean Integral Constant]]]
+[def __Metafunction_Class__ [@boost:libs/mpl/doc/refmanual/metafunction-class.html [*Metafunction Class]]]
+[def __Unary_Metafunction_Class__ [@boost:libs/mpl/doc/refmanual/metafunction-class.html [*Unary Metafunction Class]]]
+[def __Binary_Metafunction_Class__ [@boost:libs/mpl/doc/refmanual/metafunction-class.html [*Binary Metafunction Class]]]
+[def __Trinary_Metafunction_Class__ [@boost:libs/mpl/doc/refmanual/metafunction-class.html [*Trinary Metafunction Class]]]
+[def __Fusion_Sequence__ [@boost:libs/fusion/doc/html/fusion/sequence/concepts/sequence.html [*Fusion Sequence]]]
+[def __Fusion_Associative_Sequence__ [@boost:libs/fusion/doc/html/fusion/sequence/concepts/associative_sequence.html [*Fusion Associative Sequence]]]
+[def __Forward_Range__ [@boost:libs/range/doc/html/range/concepts/forward_range.html [*Forward Range]]]
+
+[/ Boost reference links.]
+[def __PP_REPEAT__ [@boost:libs/preprocessor/doc/ref/repeat.html `BOOST_PP_REPEAT`]]
+[def _PP_REPEAT_ [@boost:libs/preprocessor/doc/ref/repeat.html BOOST_PP_REPEAT]]
+[def __TYPEOF_EMULATION__ [@boost:doc/html/typeof/refe.html#typeof.compl `BOOST_TYPEOF_EMULATION`]]
+[def _tr1_is_same_ [@boost:doc/html/boost_tr1/subject_list.html#boost_tr1.subject_list.type_traits std::tr1::is_same]]
+[def _tr1_is_convertible_ [@boost:doc/html/boost_tr1/subject_list.html#boost_tr1.subject_list.type_traits std::tr1::is_convertible]]
+[def __tr1_true_type__ [@boost:doc/html/boost_tr1/subject_list.html#boost_tr1.subject_list.type_traits `std::tr1::true_type`]]
+[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_apply_wrap1_ [@boost:libs/mpl/doc/refmanual/apply-wrap.html boost::mpl::apply_wrap1]]
+[def _mpl_apply_wrap2_ [@boost:libs/mpl/doc/refmanual/apply-wrap.html boost::mpl::apply_wrap2]]
+[def _mpl_apply_wrap3_ [@boost:libs/mpl/doc/refmanual/apply-wrap.html boost::mpl::apply_wrap3]]
+[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 `boost::enable_if`]]
+[def _enable_if_ [@boost:libs/utility/enable_if.html boost::enable_if]]
+[def __boost_bind__ [@boost:libs/bind/bind.html `boost::bind()`]]
+[def _boost_forward_ [@boost:doc/html/boost/forward.html boost::forward]]
+[def __transform_iterator__ [@boost:libs/iterator/doc/transform_iterator.html `boost::transform_iterator`]]
+[def __make_transform_iterator__ [@boost:libs/iterator/doc/transform_iterator.html `boost::make_transform_iterator()`]]
+[def _fusion_has_key_ [@boost:libs/fusion/doc/html/fusion/sequence/intrinsic/functions/has_key.html boost::fusion::has_key]]
+[def __half_runtime_pairs__ [@boost:libs/fusion/doc/html/fusion/support/pair.html half-runtime pairs]]
+[def __accumulators_tag_sum__ [@boost:doc/html/boost/accumulators/tag/sum.html `boost::accumulators::tag::sum`]]
+[def __container_allocator_traits__ [@boost:doc/html/allocator_traits.html `boost::container::allocator_traits`]]
+[def __make_equivalence_function__ [@http://svn.boost.org/svn/boost/sandbox/container_gen/libs/utility/doc/html/equivalence_function.html `boost::make_equivalence_function()`]]
+[def _container_gen_ [@http://svn.boost.org/svn/boost/sandbox/container_gen/libs/container_gen/doc/html/container_gen/reference/container_gen.html boost::container_gen]]
+[def _is_queue_selector_ [@http://svn.boost.org/svn/boost/sandbox/container_gen/libs/container_gen/doc/html/container_gen/reference/is_queue_selector.html `boost::is_queue_selector`]]
+[def _is_std_heap_selector_ [@http://svn.boost.org/svn/boost/sandbox/container_gen/libs/container_gen/doc/html/container_gen/reference/is_std_heap_selector.html `boost::is_std_heap_selector`]]
+[def _is_heap_selector_ [@http://svn.boost.org/svn/boost/sandbox/container_gen/libs/container_gen/doc/html/container_gen/reference/is_heap_selector.html `boost::is_heap_selector`]]
+[def _is_recursive_selector_ [@http://svn.boost.org/svn/boost/sandbox/container_gen/libs/container_gen/doc/html/container_gen/reference/is_recursive_selector.html boost::is_recursive_selector]]
+[def _is_associative_selector_ [@http://svn.boost.org/svn/boost/sandbox/container_gen/libs/container_gen/doc/html/container_gen/reference/is_associative_selector.html boost::is_associative_selector]]
+[def _insert_range_result_gen_ [@http://svn.boost.org/svn/boost/sandbox/container_gen/libs/container_gen/doc/html/container_gen/reference/insert_range_result_gen.html boost::insert_range_result_gen]]
+[def __less_than_selector__ [@http://svn.boost.org/svn/boost/sandbox/container_gen/libs/container_gen/doc/html/container_gen/reference/selectors.html `boost::less_than_selector`]]
+[def __std_allocator_selector__ [@http://svn.boost.org/svn/boost/sandbox/container_gen/libs/container_gen/doc/html/container_gen/reference/selectors.html `boost::std_allocator_selector`]]
+[def __std_heap_selector__ [@http://svn.boost.org/svn/boost/sandbox/container_gen/libs/container_gen/doc/html/container_gen/reference/selectors.html `boost::std_heap_selector`]]
+[def __dequeS__ [@http://svn.boost.org/svn/boost/sandbox/container_gen/libs/container_gen/doc/html/container_gen/reference/selectors.html `boost::dequeS`]]
+[def __ptr_dequeS__ [@http://svn.boost.org/svn/boost/sandbox/container_gen/libs/container_gen/doc/html/container_gen/reference/selectors.html `boost::ptr_dequeS`]]
+[def __ptr_mapS__ [@http://svn.boost.org/svn/boost/sandbox/container_gen/libs/container_gen/doc/html/container_gen/reference/selectors.html `boost::ptr_mapS`]]
+
+[/ Boost.TreeNode header and source file links.]
+[def __data_key__header__ [@../../../../boost/tree_node/key/data.hpp boost/tree_node/key/data.hpp]]
+[def __accumulation_key__header__ [@../../../../boost/tree_node/key/accumulation.hpp boost/tree_node/key/accumulation.hpp]]
+[def __count_key__header__ [@../../../../boost/tree_node/key/count.hpp boost/tree_node/key/count.hpp]]
+[def __height_key__header__ [@../../../../boost/tree_node/key/height.hpp boost/tree_node/key/height.hpp]]
+[def __position_key__header__ [@../../../../boost/tree_node/key/position.hpp boost/tree_node/key/position.hpp]]
+[def __red_black_flag_key__header__ [@../../../../boost/tree_node/key/red_black_flag.hpp boost/tree_node/key/red_black_flag.hpp]]
+[def __get_properties__header__ [@../../../../boost/tree_node/intrinsic/get_properties.hpp boost/tree_node/intrinsic/get_properties.hpp]]
+[def __has_key__header__ [@../../../../boost/tree_node/intrinsic/has_key.hpp boost/tree_node/intrinsic/has_key.hpp]]
+[def __get_keys__header__ [@../../../../boost/tree_node/intrinsic/get_keys.hpp boost/tree_node/intrinsic/get_keys.hpp]]
+[def __at_key__header__ [@../../../../boost/tree_node/intrinsic/at_key.hpp boost/tree_node/intrinsic/at_key.hpp]]
+[def __value_at_key__header__ [@../../../../boost/tree_node/intrinsic/value_at_key.hpp boost/tree_node/intrinsic/value_at_key.hpp]]
+[def __advance_binary__header__ [@../../../../boost/tree_node/algorithm/advance_binary.hpp boost/tree_node/algorithm/advance_binary.hpp]]
+[def __binary_index_of__header__ [@../../../../boost/tree_node/algorithm/binary_index_of.hpp boost/tree_node/algorithm/binary_index_of.hpp]]
+[def __binary_descendant__header__ [@../../../../boost/tree_node/algorithm/binary_descendant.hpp boost/tree_node/algorithm/binary_descendant.hpp]]
+[def __binary_descendant_at_index__header__ [@../../../../boost/tree_node/algorithm/binary_descendant_at_index.hpp boost/tree_node/algorithm/binary_descendant_at_index.hpp]]
+[def __binary_lower_bound__header__ [@../../../../boost/tree_node/algorithm/binary_lower_bound.hpp boost/tree_node/algorithm/binary_lower_bound.hpp]]
+[def __binary_upper_bound__header__ [@../../../../boost/tree_node/algorithm/binary_upper_bound.hpp boost/tree_node/algorithm/binary_upper_bound.hpp]]
+[def __cartesian_sort__header__ [@../../../../boost/tree_node/algorithm/cartesian_sort.hpp boost/tree_node/algorithm/cartesian_sort.hpp]]
+[def __traversal_state__header__ [@../../../../boost/tree_node/traversal_state.hpp boost/tree_node/traversal_state.hpp]]
+[def __dereference_iterator__header__ [@../../../../boost/tree_node/iterator/dereference.hpp boost/tree_node/iterator/dereference.hpp]]
+[def __breadth_first_iterator__header__ [@../../../../boost/tree_node/iterator/breadth_first.hpp boost/tree_node/iterator/breadth_first.hpp]]
+[def __breadth_first_descendant_iterator__header__ [@../../../../boost/tree_node/iterator/breadth_first_descendant.hpp boost/tree_node/iterator/breadth_first_descendant.hpp]]
+[def __pre_order_iterator__header__ [@../../../../boost/tree_node/iterator/pre_order.hpp boost/tree_node/iterator/pre_order.hpp]]
+[def __pre_order_descendant_iterator__header__ [@../../../../boost/tree_node/iterator/pre_order_descendant.hpp boost/tree_node/iterator/pre_order_descendant.hpp]]
+[def __post_order_iterator__header__ [@../../../../boost/tree_node/iterator/post_order.hpp boost/tree_node/iterator/post_order.hpp]]
+[def __post_order_descendant_iterator__header__ [@../../../../boost/tree_node/iterator/post_order_descendant.hpp boost/tree_node/iterator/post_order_descendant.hpp]]
+[def __in_order_iterator__header__ [@../../../../boost/tree_node/iterator/in_order.hpp boost/tree_node/iterator/in_order.hpp]]
+[def __depth_first_iterator__header__ [@../../../../boost/tree_node/iterator/depth_first.hpp boost/tree_node/iterator/depth_first.hpp]]
+[def __depth_first_descendant_iterator__header__ [@../../../../boost/tree_node/iterator/depth_first_descendant.hpp boost/tree_node/iterator/depth_first_descendant.hpp]]
+[def __base__header__ [@../../../../boost/tree_node/base.hpp boost/tree_node/base.hpp]]
+[def __preprocessor__header__ [@../../../../boost/tree_node/preprocessor.hpp boost/tree_node/preprocessor.hpp]]
+[def __binary_node__forward_header__ [@../../../../boost/tree_node/binary_node_fwd.hpp boost/tree_node/binary_node_fwd.hpp]]
+[def __binary_node__header__ [@../../../../boost/tree_node/binary_node.hpp boost/tree_node/binary_node.hpp]]
+[def __nary_node__forward_header__ [@../../../../boost/tree_node/nary_node_fwd.hpp boost/tree_node/nary_node_fwd.hpp]]
+[def __nary_node__header__ [@../../../../boost/tree_node/nary_node.hpp boost/tree_node/nary_node.hpp]]
+[def __associative_node__forward_header__ [@../../../../boost/tree_node/associative_node_fwd.hpp boost/tree_node/associative_node_fwd.hpp]]
+[def __associative_node__header__ [@../../../../boost/tree_node/associative_node.hpp boost/tree_node/associative_node.hpp]]
+[def __with_accumulation__forward_header__ [@../../../../boost/tree_node/with_accumulation_fwd.hpp boost/tree_node/with_accumulation_fwd.hpp]]
+[def __with_accumulation__header__ [@../../../../boost/tree_node/with_accumulation.hpp boost/tree_node/with_accumulation.hpp]]
+[def __with_count__forward_header__ [@../../../../boost/tree_node/with_count_fwd.hpp boost/tree_node/with_count_fwd.hpp]]
+[def __with_count__header__ [@../../../../boost/tree_node/with_count.hpp boost/tree_node/with_count.hpp]]
+[def __with_height__forward_header__ [@../../../../boost/tree_node/with_height_fwd.hpp boost/tree_node/with_height_fwd.hpp]]
+[def __with_height__header__ [@../../../../boost/tree_node/with_height.hpp boost/tree_node/with_height.hpp]]
+[def __with_position__forward_header__ [@../../../../boost/tree_node/with_position_fwd.hpp boost/tree_node/with_position_fwd.hpp]]
+[def __with_position__header__ [@../../../../boost/tree_node/with_position.hpp boost/tree_node/with_position.hpp]]
+[def __with_red_black_flag__forward_header__ [@../../../../boost/tree_node/with_red_black_flag_fwd.hpp boost/tree_node/with_red_black_flag_fwd.hpp]]
+[def __with_red_black_flag__header__ [@../../../../boost/tree_node/with_red_black_flag.hpp boost/tree_node/with_red_black_flag.hpp]]
+[def __null_balancer__header__ [@../../../../boost/tree_node/balancer/null.hpp boost/tree_node/balancer/null.hpp]]
+[def __red_black_balancer__header__ [@../../../../boost/tree_node/balancer/red_black.hpp boost/tree_node/balancer/red_black.hpp]]
+[def __avl_balancer__header__ [@../../../../boost/tree_node/balancer/adelson_velskii_landis.hpp boost/tree_node/balancer/adelson_velskii_landis.hpp]]
+[def __binode_container__forward_header__ [@../../../../boost/tree_node/container/binode_fwd.hpp boost/tree_node/container/binode_fwd.hpp]]
+[def __binode_container__header__ [@../../../../boost/tree_node/container/binode.hpp boost/tree_node/container/binode.hpp]]
+[def __binode_associative_container__forward_header__ [@../../../../boost/tree_node/container/binode_associative_fwd.hpp boost/tree_node/container/binode_associative_fwd.hpp]]
+[def __binode_associative_container__header__ [@../../../../boost/tree_node/container/binode_associative.hpp boost/tree_node/container/binode_associative.hpp]]
+[def __compare_selector__forward_header__ [@../../../../boost/tree_node/selector/compare_fwd.hpp boost/tree_node/selector/compare_fwd.hpp]]
+[def __compare_selector__header__ [@../../../../boost/tree_node/selector/compare.hpp boost/tree_node/selector/compare.hpp]]
+[def __data_key__typeof_header__ [@../../../../boost/typeof/boost/tree_node/key/data.hpp boost/typeof/boost/tree_node/key/data.hpp]]
+[def __accumulation_key__typeof_header__ [@../../../../boost/typeof/boost/tree_node/key/accumulation.hpp boost/typeof/boost/tree_node/key/accumulation.hpp]]
+[def __count_key__typeof_header__ [@../../../../boost/typeof/boost/tree_node/key/count.hpp boost/typeof/boost/tree_node/key/count.hpp]]
+[def __height_key__typeof_header__ [@../../../../boost/typeof/boost/tree_node/key/height.hpp boost/typeof/boost/tree_node/key/height.hpp]]
+[def __position_key__typeof_header__ [@../../../../boost/typeof/boost/tree_node/key/position.hpp boost/typeof/boost/tree_node/key/position.hpp]]
+[def __red_black_flag_key__typeof_header__ [@../../../../boost/typeof/boost/tree_node/key/red_black_flag.hpp boost/typeof/boost/tree_node/key/red_black_flag.hpp]]
+[def __traversal_state__typeof_header__ [@../../../../boost/typeof/boost/tree_node/traversal_state.hpp boost/typeof/boost/tree_node/traversal_state.hpp]]
+[def __breadth_first_iterator__typeof_header__ [@../../../../boost/typeof/boost/tree_node/iterator/breadth_first.hpp boost/typeof/boost/tree_node/iterator/breadth_first.hpp]]
+[def __breadth_first_descendant_iterator__typeof_header__ [@../../../../boost/typeof/boost/tree_node/iterator/breadth_first_descendant.hpp boost/typeof/boost/tree_node/iterator/breadth_first_descendant.hpp]]
+[def __pre_order_iterator__typeof_header__ [@../../../../boost/typeof/boost/tree_node/iterator/pre_order.hpp boost/typeof/boost/tree_node/iterator/pre_order.hpp]]
+[def __pre_order_descendant_iterator__typeof_header__ [@../../../../boost/typeof/boost/tree_node/iterator/pre_order_descendant.hpp boost/typeof/boost/tree_node/iterator/pre_order_descendant.hpp]]
+[def __post_order_iterator__typeof_header__ [@../../../../boost/typeof/boost/tree_node/iterator/post_order.hpp boost/typeof/boost/tree_node/iterator/post_order.hpp]]
+[def __post_order_descendant_iterator__typeof_header__ [@../../../../boost/typeof/boost/tree_node/iterator/post_order_descendant.hpp boost/typeof/boost/tree_node/iterator/post_order_descendant.hpp]]
+[def __in_order_iterator__typeof_header__ [@../../../../boost/typeof/boost/tree_node/iterator/in_order.hpp boost/typeof/boost/tree_node/iterator/in_order.hpp]]
+[def __depth_first_iterator__typeof_header__ [@../../../../boost/typeof/boost/tree_node/iterator/depth_first.hpp boost/typeof/boost/tree_node/iterator/depth_first.hpp]]
+[def __depth_first_descendant_iterator__typeof_header__ [@../../../../boost/typeof/boost/tree_node/iterator/depth_first_descendant.hpp boost/typeof/boost/tree_node/iterator/depth_first_descendant.hpp]]
+[def __binary_node__typeof_header__ [@../../../../boost/typeof/boost/tree_node/binary_node.hpp boost/typeof/boost/tree_node/binary_node.hpp]]
+[def __nary_node__typeof_header__ [@../../../../boost/typeof/boost/tree_node/nary_node.hpp boost/typeof/boost/tree_node/nary_node.hpp]]
+[def __associative_node__typeof_header__ [@../../../../boost/typeof/boost/tree_node/associative_node.hpp boost/typeof/boost/tree_node/associative_node.hpp]]
+[def __with_accumulation__typeof_header__ [@../../../../boost/typeof/boost/tree_node/with_accumulation.hpp boost/typeof/boost/tree_node/with_accumulation.hpp]]
+[def __with_count__typeof_header__ [@../../../../boost/typeof/boost/tree_node/with_count.hpp boost/typeof/boost/tree_node/with_count.hpp]]
+[def __with_height__typeof_header__ [@../../../../boost/typeof/boost/tree_node/with_height.hpp boost/typeof/boost/tree_node/with_height.hpp]]
+[def __with_position__typeof_header__ [@../../../../boost/typeof/boost/tree_node/with_position.hpp boost/typeof/boost/tree_node/with_position.hpp]]
+[def __with_red_black_flag__typeof_header__ [@../../../../boost/typeof/boost/tree_node/with_red_black_flag.hpp boost/typeof/boost/tree_node/with_red_black_flag.hpp]]
+[def __null_balancer__typeof_header__ [@../../../../boost/typeof/boost/tree_node/balancer/null.hpp boost/typeof/boost/tree_node/balancer/null.hpp]]
+[def __red_black_balancer__typeof_header__ [@../../../../boost/typeof/boost/tree_node/balancer/red_black.hpp boost/typeof/boost/tree_node/balancer/red_black.hpp]]
+[def __avl_balancer__typeof_header__ [@../../../../boost/typeof/boost/tree_node/balancer/adelson_velskii_landis.hpp boost/typeof/boost/tree_node/balancer/adelson_velskii_landis.hpp]]
+[def __binode_container__typeof_header__ [@../../../../boost/typeof/boost/tree_node/container/binode.hpp boost/typeof/boost/tree_node/container/binode.hpp]]
+[def __binode_associative_container__typeof_header__ [@../../../../boost/typeof/boost/tree_node/container/binode_associative.hpp boost/typeof/boost/tree_node/container/binode_associative.hpp]]
+[def __compare_selector__typeof_header__ [@../../../../boost/typeof/boost/tree_node/selector/compare.hpp boost/typeof/boost/tree_node/selector/compare.hpp]]
+[def __example_type_definitions_hpp__ [@../../example/type_definitions.hpp example/type_definitions.hpp]]
+[def __example_output_tabs_hpp__ [@../../example/output_tabs.hpp example/output_tabs.hpp]]
+[def __example_output_tabs_cpp__ [@../../example/output_tabs.cpp example/output_tabs.cpp]]
+[def __example_output_preamble_hpp__ [@../../example/output_preamble.hpp example/output_preamble.hpp]]
+[def __example_output_preamble_cpp__ [@../../example/output_preamble.cpp example/output_preamble.cpp]]
+[def __example_output_functions_hpp__ [@../../example/output_functions.hpp example/output_functions.hpp]]
+[def __example_iterator_functions_hpp__ [@../../example/iterator_functions.hpp example/iterator_functions.hpp]]
+[def __example_assoc_iterator_functions_hpp__ [@../../example/assoc_iterator_functions.hpp example/assoc_iterator_functions.hpp]]
+[def __example_match_predicate_hpp__ [@../../example/match_predicate.hpp example/match_predicate.hpp]]
+[def __example_binary_node_cpp__ [@../../example/binary_node.cpp example/binary_node.cpp]]
+[def __example_nary_node_cpp__ [@../../example/nary_node.cpp example/nary_node.cpp]]
+[def __example_associative_node_cpp__ [@../../example/associative_node.cpp example/associative_node.cpp]]
+[def __test_binode_container_cpp__ [@../../test/binode_container.cpp test/binode_container.cpp]]
+[def __test_binode_set_cpp__ [@../../test/binode_set.cpp test/binode_set.cpp]]
+[def __test_binode_map_cpp__ [@../../test/binode_map.cpp test/binode_map.cpp]]
+[def __test_iterator_functions_hpp__ [@../../test/iterator_functions.hpp test/iterator_functions.hpp]]
+[def __test_binary_node_cpp__ [@../../test/binary_node.cpp test/binary_node.cpp]]
+[def __test_nary_node_cpp__ [@../../test/nary_node.cpp test/nary_node.cpp]]
+[def __test_associative_node_cpp__ [@../../test/associative_node.cpp test/associative_node.cpp]]
+[def __test_cartesian_sort_cpp__ [@../../test/cartesian_sort.cpp test/cartesian_sort.cpp]]
+[def __test_inverted_index_cpp__ [@../../test/inverted_index.cpp test/inverted_index.cpp]]
+
+[/ Boost.TreeNode concept links.]
+[def __Indexable_Container__ [link tree_node.concepts.indexable_container [*Indexable Container]]]
+[def __Tree_Node__ [link tree_node.concepts.tree_node [*Tree Node]]]
+[def __Copyable_Tree_Node__ [link tree_node.concepts.copyable_tree_node [*Copyable Tree Node]]]
+[def __Movable_Tree_Node__ [link tree_node.concepts.movable_tree_node [*Movable Tree Node]]]
+[def __Base_Tree_Node__ [link tree_node.concepts.base_tree_node [*Base Tree Node]]]
+[def __Reversible_Tree_Node__ [link tree_node.concepts.reversible_tree_node [*Reversible Tree Node]]]
+[def __Associative_Tree_Node__ [link tree_node.concepts.associative_tree_node [*Associative Tree Node]]]
+[def __Non_Associative_Tree_Node__ [link tree_node.concepts.non_assoc_tree_node [*Non-Associative Tree Node]]]
+[def __Binary_Tree_Node__ [link tree_node.concepts.binary_tree_node [*Binary Tree Node]]]
+[def __N_ary_Tree_Node__ [link tree_node.concepts.nary_tree_node [*N-ary Tree Node]]]
+[def __Node_Type_Generator__ [link tree_node.concepts.node_type_generator [*Node Type Generator]]]
+[def __Base_Type_Generator__ [link tree_node.concepts.base_type_generator [*Base Type Generator]]]
+[def __Indexable_Iterator__ [link tree_node.concepts.indexable_iterator [*Indexable Iterator]]]
+[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 __data_key__ [link tree_node.reference.data_key `tree_node::data_key`]]
+[def _data_key_ [link tree_node.reference.data_key tree_node::data_key]]
+[def __accumulation_key__ [link tree_node.reference.accumulation_key `tree_node::accumulation_key`]]
+[def _accumulation_key_ [link tree_node.reference.accumulation_key tree_node::accumulation_key]]
+[def __count_key__ [link tree_node.reference.count_key `tree_node::count_key`]]
+[def _count_key_ [link tree_node.reference.count_key tree_node::count_key]]
+[def __height_key__ [link tree_node.reference.height_key `tree_node::height_key`]]
+[def _height_key_ [link tree_node.reference.height_key tree_node::height_key]]
+[def __position_key__ [link tree_node.reference.position_key `tree_node::position_key`]]
+[def _position_key_ [link tree_node.reference.position_key tree_node::position_key]]
+[def __red_flag_key__ [link tree_node.reference.red_black_flag_key `tree_node::red_flag_key`]]
+[def _red_flag_key_ [link tree_node.reference.red_black_flag_key tree_node::red_flag_key]]
+[def __black_flag_key__ [link tree_node.reference.red_black_flag_key `tree_node::black_flag_key`]]
+[def _black_flag_key_ [link tree_node.reference.red_black_flag_key tree_node::black_flag_key]]
+[def __get_properties__ [link tree_node.reference.get_properties `tree_node::get_properties()`]]
+[def _get_properties_ [link tree_node.reference.get_properties tree_node::get_properties]]
+[def __result_of__get_properties__ [link tree_node.reference.get_properties.result_of `tree_node::result_of::get_properties<>`]]
+[def _result_of__get_properties_ [link tree_node.reference.get_properties.result_of tree_node::result_of::get_properties]]
+[def __has_key__ [link tree_node.reference.has_key `tree_node::has_key()`]]
+[def _has_key_ [link tree_node.reference.has_key tree_node::has_key]]
+[def __result_of__has_key__ [link tree_node.reference.has_key.result_of `tree_node::result_of::has_key<>`]]
+[def _result_of__has_key_ [link tree_node.reference.has_key.result_of tree_node::result_of::has_key]]
+[def __result_of__get_keys__ [link tree_node.reference.get_keys `tree_node::result_of::get_keys<>`]]
+[def _result_of__get_keys_ [link tree_node.reference.get_keys tree_node::result_of::get_keys]]
+[def __result_of__at_key__ [link tree_node.reference.at_key.result_of `tree_node::result_of::at_key<>`]]
+[def _result_of__at_key_ [link tree_node.reference.at_key.result_of tree_node::result_of::at_key]]
+[def __at_key__ [link tree_node.reference.at_key `tree_node::at_key`]]
+[def _at_key_ [link tree_node.reference.at_key tree_node::at_key]]
+[def __result_of__value_at_key__ [link tree_node.reference.value_at_key `tree_node::result_of::value_at_key<>`]]
+[def _result_of__value_at_key_ [link tree_node.reference.value_at_key tree_node::value_at_key]]
+[def __advance_binary__ [link tree_node.reference.advance_binary `tree_node::advance_binary()`]]
+[def _advance_binary_ [link tree_node.reference.advance_binary tree_node::advance_binary]]
+[def __binary_index_of__ [link tree_node.reference.binary_index_of `tree_node::binary_index_of()`]]
+[def _binary_index_of_ [link tree_node.reference.binary_index_of tree_node::binary_index_of]]
+[def __binary_descendant__ [link tree_node.reference.binary_descendant `tree_node::binary_descendant()`]]
+[def _binary_descendant_ [link tree_node.reference.binary_descendant tree_node::binary_descendant]]
+[def __binary_descendant_at_index__ [link tree_node.reference.binary_descendant_at_index `tree_node::binary_descendant_at_index()`]]
+[def _binary_descendant_at_index_ [link tree_node.reference.binary_descendant_at_index tree_node::binary_descendant_at_index]]
+[def __binary_lower_bound__ [link tree_node.reference.binary_lower_bound `tree_node::binary_lower_bound()`]]
+[def _binary_lower_bound_ [link tree_node.reference.binary_lower_bound tree_node::binary_lower_bound]]
+[def __binary_upper_bound__ [link tree_node.reference.binary_upper_bound `tree_node::binary_upper_bound()`]]
+[def _binary_upper_bound_ [link tree_node.reference.binary_upper_bound tree_node::binary_upper_bound]]
+[def __cartesian_sort__ [link tree_node.reference.cartesian_sort `tree_node::cartesian_sort()`]]
+[def _cartesian_sort_ [link tree_node.reference.cartesian_sort tree_node::cartesian_sort]]
+[def __cartesian_sort_range__ [link tree_node.reference.cartesian_sort_range `tree_node::cartesian_sort_range()`]]
+[def _cartesian_sort_range_ [link tree_node.reference.cartesian_sort_range tree_node::cartesian_sort_range]]
+[def __traversal_state__ [link tree_node.reference.traversal_state `tree_node::traversal_state`]]
+[def _traversal_state_ [link tree_node.reference.traversal_state tree_node::traversal_state]]
+[def __dereference_iterator__ [link tree_node.reference.dereference_iterator `tree_node::dereference_iterator()`]]
+[def _dereference_iterator_ [link tree_node.reference.dereference_iterator tree_node::dereference_iterator]]
+[def __result_of__dereference_iterator__ [link tree_node.reference.dereference_iterator.result_of `tree_node::result_of::dereference_iterator<>`]]
+[def _result_of__dereference_iterator_ [link tree_node.reference.dereference_iterator.result_of tree_node::result_of::dereference_iterator]]
+[def __breadth_first_iterator__ [link tree_node.reference.breadth_first_iterator `tree_node::breadth_first_iterator`]]
+[def _breadth_first_iterator_ [link tree_node.reference.breadth_first_iterator tree_node::breadth_first_iterator]]
+[def __breadth_first_descendant_iterator__ [link tree_node.reference.breadth_first_desc_iter `tree_node::breadth_first_descendant_iterator`]]
+[def _breadth_first_descendant_iterator_ [link tree_node.reference.breadth_first_desc_iter tree_node::breadth_first_descendant_iterator]]
+[def __pre_order_iterator__ [link tree_node.reference.pre_order_iterator `tree_node::pre_order_iterator`]]
+[def _pre_order_iterator_ [link tree_node.reference.pre_order_iterator tree_node::pre_order_iterator]]
+[def __pre_order_descendant_iterator__ [link tree_node.reference.pre_order_desc_iter `tree_node::pre_order_descendant_iterator`]]
+[def _pre_order_descendant_iterator_ [link tree_node.reference.pre_order_desc_iter tree_node::pre_order_descendant_iterator]]
+[def __post_order_iterator__ [link tree_node.reference.post_order_iterator `tree_node::post_order_iterator`]]
+[def _post_order_iterator_ [link tree_node.reference.post_order_iterator tree_node::post_order_iterator]]
+[def __post_order_descendant_iterator__ [link tree_node.reference.post_order_desc_iter `tree_node::post_order_descendant_iterator`]]
+[def _post_order_descendant_iterator_ [link tree_node.reference.post_order_desc_iter tree_node::post_order_descendant_iterator]]
+[def __in_order_iterator__ [link tree_node.reference.in_order_iterator `tree_node::in_order_iterator`]]
+[def _in_order_iterator_ [link tree_node.reference.in_order_iterator tree_node::in_order_iterator]]
+[def __depth_first_iterator__ [link tree_node.reference.depth_first_iterator `tree_node::depth_first_iterator`]]
+[def _depth_first_iterator_ [link tree_node.reference.depth_first_iterator tree_node::depth_first_iterator]]
+[def __depth_first_descendant_iterator__ [link tree_node.reference.depth_first_desc_iter `tree_node::depth_first_descendant_iterator`]]
+[def _depth_first_descendant_iterator_ [link tree_node.reference.depth_first_desc_iter tree_node::depth_first_descendant_iterator]]
+[def __tree_node_base__ [link tree_node.reference.tree_node_base `tree_node::tree_node_base`]]
+[def _tree_node_base_ [link tree_node.reference.tree_node_base tree_node::tree_node_base]]
+[def __binary_node_base__ [link tree_node.reference.binary_node_base `tree_node::binary_node_base`]]
+[def _binary_node_base_ [link tree_node.reference.binary_node_base tree_node::binary_node_base]]
+[def __binary_node_base_gen__ [link tree_node.reference.binary_node_base_gen `tree_node::binary_node_base_gen`]]
+[def _binary_node_base_gen_ [link tree_node.reference.binary_node_base_gen tree_node::binary_node_base_gen]]
+[def __binary_node__ [link tree_node.reference.binary_node `tree_node::binary_node`]]
+[def _binary_node_ [link tree_node.reference.binary_node tree_node::binary_node]]
+[def __binary_node_gen__ [link tree_node.reference.binary_node_gen `tree_node::binary_node_gen`]]
+[def _binary_node_gen_ [link tree_node.reference.binary_node_gen tree_node::binary_node_gen]]
+[def __nary_node_base__ [link tree_node.reference.nary_node_base `tree_node::nary_node_base`]]
+[def _nary_node_base_ [link tree_node.reference.nary_node_base tree_node::nary_node_base]]
+[def __nary_node_base_gen__ [link tree_node.reference.nary_node_base_gen `tree_node::nary_node_base_gen`]]
+[def _nary_node_base_gen_ [link tree_node.reference.nary_node_base_gen tree_node::nary_node_base_gen]]
+[def __nary_node__ [link tree_node.reference.nary_node `tree_node::nary_node`]]
+[def _nary_node_ [link tree_node.reference.nary_node tree_node::nary_node]]
+[def __nary_node_gen__ [link tree_node.reference.nary_node_gen `tree_node::nary_node_gen`]]
+[def _nary_node_gen_ [link tree_node.reference.nary_node_gen tree_node::nary_node_gen]]
+[def __associative_node_base__ [link tree_node.reference.associative_node_base `tree_node::associative_node_base`]]
+[def _associative_node_base_ [link tree_node.reference.associative_node_base tree_node::associative_node_base]]
+[def __associative_node_base_gen__ [link tree_node.reference.assoc_node_base_gen `tree_node::associative_node_base_gen`]]
+[def _associative_node_base_gen_ [link tree_node.reference.assoc_node_base_gen tree_node::associative_node_base_gen]]
+[def __associative_node__ [link tree_node.reference.associative_node `tree_node::associative_node`]]
+[def _associative_node_ [link tree_node.reference.associative_node tree_node::associative_node]]
+[def __associative_node_gen__ [link tree_node.reference.associative_node_gen `tree_node::associative_node_gen`]]
+[def _associative_node_gen_ [link tree_node.reference.associative_node_gen tree_node::associative_node_gen]]
+[def __tree_node_with_accumulation_base__ [link tree_node.reference.with_accumulation_base `tree_node::with_accumulation_base`]]
+[def _tree_node_with_accumulation_base_ [link tree_node.reference.with_accumulation_base tree_node::with_accumulation_base]]
+[def __tree_node_with_accumulation_base_gen__ [link tree_node.reference.with_accumulation_base_gen `tree_node::with_accumulation_base_gen`]]
+[def _tree_node_with_accumulation_base_gen_ [link tree_node.reference.with_accumulation_base_gen tree_node::with_accumulation_base_gen]]
+[def __tree_node_with_accumulation__ [link tree_node.reference.with_accumulation `tree_node::with_accumulation`]]
+[def _tree_node_with_accumulation_ [link tree_node.reference.with_accumulation tree_node::with_accumulation]]
+[def __tree_node_with_accumulation_gen__ [link tree_node.reference.with_accumulation_gen `tree_node::with_accumulation_gen`]]
+[def _tree_node_with_accumulation_gen_ [link tree_node.reference.with_accumulation_gen tree_node::with_accumulation_gen]]
+[def __tree_node_with_count_base__ [link tree_node.reference.with_count_base `tree_node::with_count_base`]]
+[def _tree_node_with_count_base_ [link tree_node.reference.with_count_base tree_node::with_count_base]]
+[def __tree_node_with_count_base_gen__ [link tree_node.reference.with_count_base_gen `tree_node::with_count_base_gen`]]
+[def _tree_node_with_count_base_gen_ [link tree_node.reference.with_count_base_gen tree_node::with_count_base_gen]]
+[def __tree_node_with_count__ [link tree_node.reference.with_count `tree_node::with_count`]]
+[def _tree_node_with_count_ [link tree_node.reference.with_count tree_node::with_count]]
+[def __tree_node_with_count_gen__ [link tree_node.reference.with_count_gen `tree_node::with_count_gen`]]
+[def _tree_node_with_count_gen_ [link tree_node.reference.with_count_gen tree_node::with_count_gen]]
+[def __tree_node_with_height_base__ [link tree_node.reference.with_height_base `tree_node::with_height_base`]]
+[def _tree_node_with_height_base_ [link tree_node.reference.with_height_base tree_node::with_height_base]]
+[def __tree_node_with_height_base_gen__ [link tree_node.reference.with_height_base_gen `tree_node::with_height_base_gen`]]
+[def _tree_node_with_height_base_gen_ [link tree_node.reference.with_height_base_gen tree_node::with_height_base_gen]]
+[def __tree_node_with_height__ [link tree_node.reference.with_height `tree_node::with_height`]]
+[def _tree_node_with_height_ [link tree_node.reference.with_height tree_node::with_height]]
+[def __tree_node_with_height_gen__ [link tree_node.reference.with_height_gen `tree_node::with_height_gen`]]
+[def _tree_node_with_height_gen_ [link tree_node.reference.with_height_gen tree_node::with_height_gen]]
+[def __tree_node_with_position_base__ [link tree_node.reference.with_position_base `tree_node::with_position_base`]]
+[def _tree_node_with_position_base_ [link tree_node.reference.with_position_base tree_node::with_position_base]]
+[def __tree_node_with_position_base_gen__ [link tree_node.reference.with_position_base_gen `tree_node::with_position_base_gen`]]
+[def _tree_node_with_position_base_gen_ [link tree_node.reference.with_position_base_gen tree_node::with_position_base_gen]]
+[def __tree_node_with_position__ [link tree_node.reference.with_position `tree_node::with_position`]]
+[def _tree_node_with_position_ [link tree_node.reference.with_position tree_node::with_position]]
+[def __tree_node_with_position_gen__ [link tree_node.reference.with_position_gen `tree_node::with_position_gen`]]
+[def _tree_node_with_position_gen_ [link tree_node.reference.with_position_gen tree_node::with_position_gen]]
+[def __tree_node_with_red_black_flag_base__ [link tree_node.reference.with_rb_flag_base `tree_node::with_red_black_flag_base`]]
+[def _tree_node_with_red_black_flag_base_ [link tree_node.reference.with_rb_flag_base tree_node::with_red_black_flag_base]]
+[def __tree_node_with_red_black_flag_base_gen__ [link tree_node.reference.with_rb_flag_base_gen `tree_node::with_red_black_flag_base_gen`]]
+[def _tree_node_with_red_black_flag_base_gen_ [link tree_node.reference.with_rb_flag_base_gen tree_node::with_red_black_flag_base_gen]]
+[def __tree_node_with_red_black_flag__ [link tree_node.reference.with_rb_flag `tree_node::with_red_black_flag`]]
+[def _tree_node_with_red_black_flag_ [link tree_node.reference.with_rb_flag tree_node::with_red_black_flag]]
+[def __tree_node_with_red_black_flag_gen__ [link tree_node.reference.with_rb_flag_gen `tree_node::with_red_black_flag_gen`]]
+[def _tree_node_with_red_black_flag_gen_ [link tree_node.reference.with_rb_flag_gen tree_node::with_red_black_flag_gen]]
+[def __null_balancer__ [link tree_node.reference.null_balancer `tree_node::null_balancer`]]
+[def _null_balancer_ [link tree_node.reference.null_balancer tree_node::null_balancer]]
+[def __red_black_balancer__ [link tree_node.reference.red_black_balancer `tree_node::red_black_balancer`]]
+[def _red_black_balancer_ [link tree_node.reference.red_black_balancer tree_node::red_black_balancer]]
+[def __avl_balancer__ [link tree_node.reference.avl_balancer `tree_node::adelson_velskii_landis_balancer`]]
+[def _avl_balancer_ [link tree_node.reference.avl_balancer tree_node::adelson_velskii_landis_balancer]]
+[def __binode_container__ [link tree_node.reference.binode_container `tree_node::binode_container`]]
+[def _binode_container_ [link tree_node.reference.binode_container tree_node::binode_container]]
+[def __binode_associative_container__ [link tree_node.reference.binode_assoc_container `tree_node::binode_associative_container`]]
+[def _binode_associative_container_ [link tree_node.reference.binode_assoc_container tree_node::binode_associative_container]]
+[def __binode_set__ [link tree_node.reference.binode_set `tree_node::binode_set`]]
+[def _binode_set_ [link tree_node.reference.binode_set tree_node::binode_set]]
+[def __binode_map__ [link tree_node.reference.binode_map `tree_node::binode_map`]]
+[def _binode_map_ [link tree_node.reference.binode_map tree_node::binode_map]]
+[def __binode_multiset__ [link tree_node.reference.binode_multiset `tree_node::binode_multiset`]]
+[def _binode_multiset_ [link tree_node.reference.binode_multiset tree_node::binode_multiset]]
+[def __binode_multimap__ [link tree_node.reference.binode_multimap `tree_node::binode_multimap`]]
+[def _binode_multimap_ [link tree_node.reference.binode_multimap tree_node::binode_multimap]]
+[def __tree_node_compare_selector__ [link tree_node.reference.compare_selector `tree_node::compare_selector`]]
+[def _tree_node_compare_selector_ [link tree_node.reference.compare_selector tree_node::compare_selector]]
+[def __tree_node_compareS__ [link tree_node.reference.compare_selector `tree_node::compareS`]]
+[def _tree_node_compareS_ [link tree_node.reference.compare_selector tree_node::compareS]]
+[def __TREE_NODE_CAN_USE_FUSION__ [link tree_node.reference.can_use_fusion `BOOST_TREE_NODE_CAN_USE_FUSION`]]
+[def __TREE_NODE_CAN_USE_FUSION_WITH_TYPEOF__ [link tree_node.reference.can_use_fusion_with_typeof `BOOST_TREE_NODE_CAN_USE_FUSION_WITH_TYPEOF`]]
+[def __TREE_NODE_EMPLACEMENT_CTOR_FWD_DECL__ [link tree_node.reference.emplace_ctor_fwd_decl `BOOST_TREE_NODE_EMPLACEMENT_CTOR_FWD_DECL`]]
+[def __TREE_NODE_EMPLACEMENT_CTOR_INLINE_HEADER__ [link tree_node.reference.emplace_ctor_inline_hdr `BOOST_TREE_NODE_EMPLACEMENT_CTOR_INLINE_HEADER`]]
+[def __TREE_NODE_EMPLACEMENT_CTOR_INLINE_DEF__ [link tree_node.reference.emplace_ctor_inline_def `BOOST_TREE_NODE_EMPLACEMENT_CTOR_INLINE_DEF`]]
+[def __TREE_NODE_EMPLACEMENT_CTOR_W_ALLOC_FWD_DECL__ [link tree_node.reference.emplace_ctor_w_alloc_f_dcl `BOOST_TREE_NODE_EMPLACEMENT_CTOR_W_ALLOC_FWD_DECL`]]
+[def __TREE_NODE_EMPLACEMENT_CTOR_W_ALLOC_INLINE_HEADER__ [link tree_node.reference.emplace_ctor_w_alloc_i_hdr `BOOST_TREE_NODE_EMPLACEMENT_CTOR_W_ALLOC_INLINE_HEADER`]]
+[def __TREE_NODE_EMPLACEMENT_CTOR_W_ALLOC_INLINE_DEF__ [link tree_node.reference.emplace_ctor_w_alloc_i_def `BOOST_TREE_NODE_EMPLACEMENT_CTOR_W_ALLOC_INLINE_DEF`]]
+[def __TREE_NODE_COPYABLE_AND_MOVABLE__ [link tree_node.reference.copyable_and_movable `BOOST_TREE_NODE_COPYABLE_AND_MOVABLE`]]
+[def __TREE_NODE_CONTAINER_DERIVED_BODY__ [link tree_node.reference.container_derived_body `BOOST_TREE_NODE_CONTAINER_DERIVED_BODY`]]
+[def __TREE_NODE_ASSOCIATIVE_CONTAINER_DERIVED_BODY__ [link tree_node.reference.assoc_cont_derived_body `BOOST_TREE_NODE_ASSOCIATIVE_CONTAINER_DERIVED_BODY`]]
+
+[/ Autogenerate concept and reference documentation directly from code.]
+[/ Bypass Doxygen.]
+[import ../../../boost/tree_node/key/data.hpp]
+[import ../../../boost/tree_node/key/accumulation.hpp]
+[import ../../../boost/tree_node/key/count.hpp]
+[import ../../../boost/tree_node/key/height.hpp]
+[import ../../../boost/tree_node/key/position.hpp]
+[import ../../../boost/tree_node/key/red_black_flag.hpp]
+[import ../../../boost/tree_node/intrinsic/get_properties.hpp]
+[import ../../../boost/tree_node/intrinsic/has_key.hpp]
+[import ../../../boost/tree_node/intrinsic/get_keys.hpp]
+[import ../../../boost/tree_node/intrinsic/at_key.hpp]
+[import ../../../boost/tree_node/intrinsic/value_at_key.hpp]
+[import ../../../boost/tree_node/algorithm/advance_binary.hpp]
+[import ../../../boost/tree_node/algorithm/binary_index_of.hpp]
+[import ../../../boost/tree_node/algorithm/binary_descendant.hpp]
+[import ../../../boost/tree_node/algorithm/binary_descendant_at_index.hpp]
+[import ../../../boost/tree_node/algorithm/binary_lower_bound.hpp]
+[import ../../../boost/tree_node/algorithm/binary_upper_bound.hpp]
+[import ../../../boost/tree_node/algorithm/cartesian_sort.hpp]
+[import ../../../boost/tree_node/traversal_state.hpp]
+[import ../../../boost/tree_node/iterator/dereference.hpp]
+[import ../../../boost/tree_node/iterator/breadth_first.hpp]
+[import ../../../boost/tree_node/iterator/breadth_first_descendant.hpp]
+[import ../../../boost/tree_node/iterator/pre_order.hpp]
+[import ../../../boost/tree_node/iterator/pre_order_descendant.hpp]
+[import ../../../boost/tree_node/iterator/post_order.hpp]
+[import ../../../boost/tree_node/iterator/post_order_descendant.hpp]
+[import ../../../boost/tree_node/iterator/in_order.hpp]
+[import ../../../boost/tree_node/iterator/depth_first.hpp]
+[import ../../../boost/tree_node/iterator/depth_first_descendant.hpp]
+[import ../../../boost/tree_node/base.hpp]
+[import ../../../boost/tree_node/preprocessor.hpp]
+[import ../../../boost/tree_node/binary_node_fwd.hpp]
+[import ../../../boost/tree_node/binary_node.hpp]
+[import ../../../boost/tree_node/nary_node_fwd.hpp]
+[import ../../../boost/tree_node/nary_node.hpp]
+[import ../../../boost/tree_node/associative_node_fwd.hpp]
+[import ../../../boost/tree_node/associative_node.hpp]
+[import ../../../boost/tree_node/with_accumulation_fwd.hpp]
+[import ../../../boost/tree_node/with_accumulation.hpp]
+[import ../../../boost/tree_node/with_count_fwd.hpp]
+[import ../../../boost/tree_node/with_count.hpp]
+[import ../../../boost/tree_node/with_height_fwd.hpp]
+[import ../../../boost/tree_node/with_height.hpp]
+[import ../../../boost/tree_node/with_position_fwd.hpp]
+[import ../../../boost/tree_node/with_position.hpp]
+[import ../../../boost/tree_node/with_red_black_flag_fwd.hpp]
+[import ../../../boost/tree_node/with_red_black_flag.hpp]
+[import ../../../boost/tree_node/balancer/null.hpp]
+[import ../../../boost/tree_node/balancer/red_black.hpp]
+[import ../../../boost/tree_node/balancer/adelson_velskii_landis.hpp]
+[import ../../../boost/tree_node/container/binode_fwd.hpp]
+[import ../../../boost/tree_node/container/binode.hpp]
+[import ../../../boost/tree_node/container/binode_associative_fwd.hpp]
+[import ../../../boost/tree_node/container/binode_associative.hpp]
+[import ../../../boost/tree_node/selector/compare_fwd.hpp]
+[import ../../../boost/tree_node/selector/compare.hpp]
+[import ../example/type_definitions.hpp]
+[import ../test/binary_node.cpp]
+[import ../test/cartesian_sort.cpp]
+[import ../test/inverted_index.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.
+
+[important
+    This library depends on __Boost_ContainerGen__, which is not yet a part
+    of Boost.  For now, you must perform a Subversion checkout from the
+    __SVN_Trac__.
+]
+
+[/ index.html End]
+
+[include concepts.qbk]
+[include reference.qbk]
+[include changelog.qbk]
+